EXCEPTION HANDLER

EXCEPTION HANDLER

Akcia EXCEPTION HANDLER


Funkcia

Akcia definuje začiatok akcií, ktoré sa zaoberajú obsluhou vzniknutej chyby (tzv. exception handler) a definuje oblasť ich platnosti.

Deklarácia

EXCEPTION_HANDLER

Popis

Akcia EXCEPTION_HANDLER definuje začiatok akcií, ktoré sa zaoberajú obsluhou vzniknutej chyby (tzv. exception handler) a zároveň akcia definuje oblasť, pre ktorú táto obsluha chyby platí.
Podľa oblasti (kontextu), kde je akcia použitá, má jej vykonanie za následok:

  • Ukončenie vykonávania skriptu - ak je akcia použitá mimo procedúry.

  • Ukončenie vykonávania procedúry - ak je akcia použitá v rámci procedúry.

Ak je akcia EXCEPTION_HANDLER umiestnená v tele procedúry, oblasť, pre ktorú platí exception handler, končí touto akciou a začína buď predchádzajúcou akciou EXCEPTION_HANDLER, alebo začiatkom procedúry.
Ak je akcia EXCEPTION_HANDLER umiestnená mimo procedúry, definuje exception handler pre chyby, ktoré nastanú v akciách inicializačnej časti skriptu a pri inicializácii globálnych premenných.

Akcia ON ERROR nesmie mať definovanú obsluhu chyby akciou EXCEPTION_HANDLER.

Napríklad:

 

PROCEDURE Proc2 ; zle umiestnenie príkazu ON ERROR Error INT _i CALL Proc1 Error: EXCEPTION_HANDLER ; obsluha vynimiek od zaciatku procedury az po akciu EXCEPTION_HANDLER END Proc2

 

Akcia EXCEPTION_HANDLER je pri vykonávaní interpretovaná ako akcia RETURN. Nasledujúce dve procedúry su preto ekvivalentné:

 

PROCEDURE Proc1 ; akcie ; ..... RETURN EXCEPTION_HANDLER ; obsluha vynimky END Proc1

 

alebo

 

PROCEDURE Proc1 ; akcie ; ..... EXCEPTION_HANDLER ; obsluha vynimky END Proc1

 

Akciou EXCEPTION_HANDLER je možné obsluhovať výnimky, ktoré vzniknú pri ošetrovaní výnimiek nasledovne:

 

PROCEDURE Proc3 ; akcie ; .... EXCEPTION_HANDLER ; obsluha vynimiek od zaciatku procedury az po akciu EXCEPTION_HANDLER EXCEPTION_HANDLER ; obsluha vynimiek od predchadzajucej akcie EXCEPTION_HANDLER END Proc3