try - catch
Poskytuje mechanismus pro zachycení výjimky.
try
try-bodycatch
expression catch-body/try
- try-body
- Blok příkazů, ve kterém se může zachytit výjimka.
- expression
- Výraz, který se vyhodnotí jako test, zda má být výjimka zachycena.
- catch-body
- Výraz, který se vyhodnotí, pokud došlo k výjimce a expression se po převodu na logickou hodnotu vyhodnotila na
true
.
Během vyhodnocování expression a catch-body jsou dostupné následující proměnné:
_exception
- Zachycená výjimka.
_exceptionPackage
- Package, do kterého patří třída výjimky.
_exceptionClass
- Název třídy výjimky.
_exceptionMessage
- Chybová hláška z výjimky.
_exceptionStackTrace
- Stack trace (jako String).
Je tedy možné například testovat typ výjimky a podle toho ji buď zachytit, nebo nechat projít.
Použití tohoto mechanismu v produkčním prostředí je vždycky přinejmenším diskutabilní. Doporučuje se pokaždé zvážit, zda by se tato logika neměla přenést do kódu aplikace.
Příklad: Použití try - catch
Šablona
{try}
Složité věci, které mohou vygenerovat výjimku...
{catch true}
...ale tu vždycky zachytíme
a tváříme se jako by nic.
{/try}
Univerzální způsob eliminace chyby; přímo takto by se samozřejmě neměl používat.
Pro vložení příspěvku do diskuse se přihlašte.