A FireBird rendelkezik kivételkezelést támogató eszközökkel. A nyelv kivételkezelése blokk-szintű, azaz utasításblokkokhoz rendelhetünk kivételkezelő eljárásokat. A pontos szintaxis:
EXCEPTION | Egy, az adatbázisban létrehozott kivételosztály |
SQLCODE | SQL hibakód |
GDSCODE | InterBase hibakód |
ANY | Előző három bármelyike |
További megkötések és tudnivalók:
Az EXCEPTION-ök mindig nevesítettek, ellentétben az SQLCODE-dal, melyek típusait a következő táblázat tartalmazza:
SQLERROR | Hiba. A pontos leírás a dokumentációban található. | |
SUCCESS | Sikeres végrehajtás. | |
SQLWARNING | Figyelmeztetés. | |
NOT FOUND | Nincs megfelelő rekord ill. vége van a file-nak. |
Természetesen mi is definiálhatunk kivételeket, melynek szintaxisa:
Itt a "message"-re megkötés, hogy maximum 78 karakter hosszú lehet. Fontos megjegyzés, hogy az EXCEPTION nem típus, csupán egy kulcsszó, amellyel kivételeket deklarálhatunk. Az általunk deklarált kivételek gyakorlatilag csak egy névnek számítanak, amelyet használhatunk kivételek kiváltására. A kivételek az egész adatbázisra nézve globálisak.
Egy blokkban kivételt dobni az EXCEPTION kulcsszóval tudunk, megadva utána a kivétel nevét. Példa: