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 

0 komentárov

Nie ste prihlásený. Akékoľvek zmeny, ktoré vykonáte, sa označia ako anonymné. Ak už máte svoj účet, pravdepodobne sa budete chcieť prihlásiť .