A Corbascript nyelv

Kivételek kezelése

A CorbScript kétféle, belső (internal) és felhasználói (user) kivételeket ismer.

Belső kivételek

A belső kivételeket az interpreter szintaktikai hibák, típus ellenőrzési problémák, helytelen műveletek kezelésére használja. A következő előre definiált belső kivételek vannak.

Felhasználói kivételek

A felhasználónak lehetősége van saját kivételek definiálására. A kivételt a throw <kifejezés> paranccsal válthatjuk ki. Bármely CorbaScript objektum alkalmas arra, hogy a throw kifejezéseként felhasználhassuk.

Kivételek kezelése

Belső és felhasználói kivételek lekezelhetőek a try-catch-finally utasítások segítségével.

A kivételkezelés szintaxisa

<try_catch_finally_statement>::= "try" "{" <statements> "}"
  { "catch" "(" <exception_type> <identifier> ")" "{" <statements> "}" }*
  [ "catch" "(" <identifier> ")" "{" <statements> "}" ] [ "finally" "{" <statements> "}" ]
<exception_type>::= <identifier> { "." <identifier> }*

A try utasítás blokkban találhatóak azok az utasítások, amelyek végrehajtása során kivételek léphetnek fel. Ez után következnek a catch blokkok, amelyek egy adott típusú kivétel lekezelésére alkalmasak. Ha a kiváltott kivétel típusa megfelel egy catch blokk típusának, akkor az adott catch blokk változója értékül kapja a megfelelő kivétel paraméterét és a futás megfelelő catch blokk első utasításánál folytatódik. Az utolsó opcionális típus a paraméter nélküli catch blokk, bármely kivétel elfogására alkalmas. A szintén opcionális finally záradék minden esetben meghívódik, akár volt kivétel, akár nem.