Zrušení zasílání mailů z Debugger v případě AbortException
- roman.campula
- Člen | 60
Zdravím,
mám dotaz ohledně zasílání e-mailů z Tracy\Debugger. Při každé
výjimce mi přijde mail (to je správně) o zachytnuté výjimce.
V případě AbortException to však nechci, protože se to děje poměrně
často, když ukončuji presenter, např.
function actionResetLastRainRecord() {
try {
$this->meteoRecordsFacade->resetLastRainRecord();
$this->logsFacade->newLog($this->actualPresenter->id, ["action" => "resetLastRainRecord"]);
$this->presenter->sendResponse(new Nette\Application\Responses\TextResponse(Nette\Http\IResponse::S200_OK));
} catch (\Throwable $e) {
Debugger::log($e, Debugger::EXCEPTION);
$this->presenter->sendResponse(new Nette\Application\Responses\TextResponse(Nette\Http\IResponse::S500_INTERNAL_SERVER_ERROR));
}
}
Jde nějak nastavit, aby to AbortException ignorovalo, ale ostatní výjimky se posílaly dále?
Díky za radu
- johnnie
- Člen | 54
Ahoj,
malo by stacit, ak upravis odchytavanie try/catch bloku. Konkretne ho rozsirit
o tuto vynimku, kde pouzijes len log bez paramatera o vaznosti. Ak ho nechces
logovat tak ho nepouzi.
Taketo nieco by mohlo fungovat, ale neskusal som to.
function actionResetLastRainRecord() {
try {
$this->meteoRecordsFacade->resetLastRainRecord();
$this->logsFacade->newLog($this->actualPresenter->id, ["action" => "resetLastRainRecord"]);
$this->presenter->sendResponse(new Nette\Application\Responses\TextResponse(Nette\Http\IResponse::S200_OK));
} catch (\Nette\Application\AbortException $e) {
Debugger::log($e);
$this->presenter->sendResponse(new Nette\Application\Responses\TextResponse(Nette\Http\IResponse::S500_INTERNAL_SERVER_ERROR));
} catch (\Throwable $e) {
Debugger::log($e, Debugger::EXCEPTION);
$this->presenter->sendResponse(new Nette\Application\Responses\TextResponse(Nette\Http\IResponse::S500_INTERNAL_SERVER_ERROR));
}
}
Editoval johnnie (4. 12. 2022 18:48)