Az Oz/Mozart programozási nyelv

Kivételkezelés

Kivételkezelés

Kulcsszavak: try, raise, case, finally
Gyakorlatilag egy case fut le a kivételkezelőben.
A nyelv beépített kivételei rekordok, a failure, error, system címkék egyikével.

Szintaxis

try S1 catch x then S2 end

Kivételek definiálása

Nem kell kivételeket definiálni.

Kivételek kiváltása

A raise kulcsszóval:

raise E end

Kivételek kezelése

proc {Eval E} case E of plus(X Y) then {Browse X+Y} [] times (X Y) then {Browse X*Y} else raise illFormedExpression(E) end end

Kivételek terjedése

Ha egy dobott kivétel nincs lekezelve, az emulátor ablakban megjelenik egy hibaüzenet és az adott programszál terminál.
Ha programblokk végrehajtása közben nincs kivétel, a programblokk hajtódik végre. Ha kivétel váltódik ki a blokk végrehajtása közben, a kivételt sorban illesztjük a mintákra, és amelyikre illeszkedik, a hozzá tartozó kivételág hajtódík végre, ha egyikre sem illeszthető, a kivétel egy szinttel feljebb kerül. A final blokk minden esetben végrehajtódik.