A kivételeket a deklarációjuk definiálja, és a deklarációt a declare blokkba kell elhelyezni.
Kivételt a raise "függvénnyel" lehet kiváltani. A szintaxisa miatt nevezem függvénynek, mert a kulcsszó után ( és ) közé kell írni a kiváltandó kivétel azonosítóját. A fenti példában raise near szerepel. A kettő között az a különbség, hogy a raise near nem ugrik ki az aktuális függvényből, hanem a saját kivételkezelőjéhez ugrik (ha nincs saját kivételkezelője, akkor ugyanúgy viselkedik, mint a raise). A raise figyelmen kívül hagyja a saját kivételkezelőjét.
Függvény-szintű kivételkezelést támogat a nyelv. A kivételkezelő részt a függvény törzsének a végén kell elhelyezni. Egy kivételkezelő az exception kulcsszóval kezdődik, majd gömbölyű zárójelek között a kezelendő kivétel azonosítója, majd kapcsos zárójelek között az utasítások. Nem csak meghatározott kivételt lehet elkapni - erre a célra van egy joker is, amit az utolsó kivételkezelő után kell írni. Ha első helyen szerepelne, akkor elkapná az összes kivételt. A kivételkezelő utasításai után a finally utasításait is végrehajtja. A finally utasításait csak akkor nem hajtja végre, ha kivételt vált ki a függvény, mert akkor megszakad a végrehajtása.
Egy kivétel addíg lép ki a függvényekből, amíg nem talál egy kivételkezelőt, vagy amíg ki nem lép az utolsó
függvényből. Utóbbi esetén a virtuális gép jelez a gazda programnak, hogy futási idejű hiba történt (kezeletlen
kivétel).
Kivételt lehet kivételkezelőből is kiváltani. A finally utasításait minden esetben végrehajtja!