Zobrazení chyb z modelu přes flash zprávičky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Nutelac
Člen | 58
+
0
-

Jak řešíte zobrazování chyb, které vyvolal model uživateli pomocí flash zpráviček? Například při přihlašování odchytávám AuthenticationException:

	try
	{
		//login
	}
	catch(NS\AuthenticationException $e)
	{
		$this->presenter->flashMessage($e->getMessage(), 'error');
	}

Jak to ale řešit u ostatních modelů? Je nějaký doporučený postup (například jaké výjimky vyhazovat)?

Zadruhé mě zajímalo, jestli je vhodné odchytávat \Exception, aby jsem zobrazil uživateli, že se něco pokazilo, ale nevím co :) (a jestli je to možné nějak zautomatizovat):

	try
	{
		//kód
	}
	catch(\Exception $e)
	{
		$this->presenter->flashMessage('Něco se pokazilo, zkuste to za chvíli', 'error');
	}

Díky

ViPEr*CZ*
Člen | 817
+
0
-

Jak to můžete odchytávat v modelu??? Model by o presenteru neměl vůbec vědět.

Nutelac
Člen | 58
+
0
-

Samozřejmě, že to odchytávám v presenteru (komponentě).

Editoval Nutelac (3. 11. 2012 15:44)

ViPEr*CZ*
Člen | 817
+
0
-

Nutelac napsal(a):

Samozřejmě, že to odchytávám v presenteru (komponentě).

Aha, tak to se omlouvám… vypadalo to podle toho příspěvku, že se to odchytává v modelu.
A jaké vyjímky vyhazovat? No nejlépe využít dostupné deriváty Exception, které vždy co nejvíce vystihují povahu chyby, případně si odvodit nějaké vlastní.

Nutelac
Člen | 58
+
0
-

Díky. U už existujících výjimek jsem měl strach, aby to nezachytilo nějakou systémovou chybu a vytvořit něco jako FlashMessageException mi přišlo moc obecné. Takže nakonec budu muset, jak píšete, odvodit si vlastní, které nejvíce vystihují problém.

Editoval Nutelac (3. 11. 2012 16:54)

David Matějka
Moderator | 6445
+
0
-

dej si pozor na https://api.nette.org/…ication.html a vyjimky AbortException a BadRequestException (+derivat ForbiddenRequestException), ty musis poslat dal, jinak ti nebude fungovat presmerovani a nejaky error stranky, jinak se muzou zachytit snad vsechny.. ale je asi nejlepsi mit vlastni a zbytek at zachyti nette jako 500 :)

Editoval matej21 (4. 11. 2012 9:42)

Nutelac
Člen | 58
+
0
-

Díky za upřesnění