Autor: LZe, JIz

try - catch

Poskytuje mechanismus pro zachycení výjimky.

try
  try-body
catch 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.