Zobrazení chyb z modelu přes flash zprávičky
- Nutelac
- Člen | 58
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
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
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
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)