Zrušení zasílání mailů z Debugger v případě AbortException

roman.campula
Člen | 60
+
0
-

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
+
+2
-

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)