Nette neloguje výnimky tak ako ich PHP vyhodí

Čamo
Člen | 786
+
0
-

Mám jednoduchú handle metodu, ktorá volá nejaký model, ktorý môže padnúť na roznych chybách. Preto je celý kód v try-catchy ktorý by mal zalogovať čo sa stalo, tak ako to mám v celej aplikácii. Problém je že Nette mi zaloguje výnimku, ktorá vôbec nesúvisí s chybou, ktorá nastala, ale miesto nej je tam uložené niečo čo mi vôbec nedáva zmysel.

Tu je odkaz na exception: https://drive.google.com/…oGvF8I_/view?…
Miesto toho by v exception mal byť text: Unknown column ‚user_id‘ in ‚field list‘. Miesto toho je tam text Cannot load presenter ‚Front:Log‘, class ‚App\FrontModule\Presenters\LogPresenter‘ was not found.

Toto je kód ktorý spúštam:

	public function handleMergeCompany()
	{
		try {
			$fromCompanyId = $this->httpRequest->getPost('fromCompanyId');
			$toCompanyId = $this->httpRequest->getPost('toCompanyId');

			$this->company->db->begin();
			$this->company->mergeCompany($fromCompanyId, $toCompanyId, $this->userData->id);
			$this->company->db->commit();

			$this->flashMessage("Firma bola zlúčená.", 'success');
		}
		catch ( \Exception $e ) {
			Debugger::log($e, Debugger::EXCEPTION);
			$this->company->db->rollback();
			$this->flashMessage('Pri zlučovaní firiem došlo k chybe. Firmy neboli zlúčené.', 'danger');
		}
	}

Editoval Čamo (3. 3. 2023 12:47)

Kalfi
Člen | 11
+
0
-

Vrací ti to Dibi\DriverException jako zprávu Unknown column ‚user_id‘ in ‚field list‘. Zkus odchytit tu Dibi\DriverException, kterou to vyhazuje.

Marek Bartoš
Nette Blogger | 1173
+
0
-

Tak hledej kde odkazuješ na Front:Log. Jednoduše ti jinde vzniká jiná výjimka a nejspíš ti rozbíjí logování.

Čamo
Člen | 786
+
0
-

@Kalfi Nechcem tam mať všetky možné druhy vínimiek. Stačí jedna.

@MarekBartoš Vôbec neviem ako by to s tým malo súvisieť. Je to jedno volanie modelu. Idem sa pozrieť ale nechápem vôbec.

Čamo
Člen | 786
+
0
-

Marek Bartoš napsal(a):

Tak hledej kde odkazuješ na Front:Log. Jednoduše ti jinde vzniká jiná výjimka a nejspíš ti rozbíjí logování.

Ale do catch mi vstupuje správna vínimka. Kde v Debugger::log() môže nastať nejaké iná?

Kamil Valenta
Člen | 762
+
0
-

Nesnažíš se někde otevřít URL /log, neodkazuješ na „log“, „Front:log“ nebo neprovádíš redirect na tyto cesty?