A Falcon egy olyan mechanizmust nyújt, ami kezeli a váratlan szituációkat, melyek felmerülhetnek a programban. Sok könyvtár funkció és nyelv felépítése használja ezt a mechanizmust, hogy kommunikáljon az irányító scripttel a váratlan szituációkról, de az a rendszer maga a script számára is elérhető, így a scriptírók élvezhetik ennek az előnyeit. Ezt nevezik kivétel kiváltásnak.
A Virtual Machine, a könyvtár funkciók egyike vagy akár egyéb script részek mindig egy lehetségesen veszélyes szituációba futnak, egy kivételt váltanak ki. Ha ezt a kivételt nem kezelik le valahogy, a script visszaküldik a rendszernek; a Falcon interpreter kiír egy hibaüzenetet és bezárul.
Ha a Falcon Virtual Machine-t egy beágyazott alkalmazás használja, hogy néhány scriptet futtasson, a beágyazónak van lehetősége, hogy beállítson egy felsőfokú kivétel kezelőt. Ez általában engedélyezi a beágyazott alkalmazásnak a lehetőséget, hogy tudomást szerezzen a fatal error-okról a scriptekben és érezhető lépéseke tegyen.
Létezik a kivételeknek egy olyan beállítása, amit megállíthatatlannak hívnak. Ezek a kivételek a könyvtár funkciókból erednek vagy magából a Virtual Machineból, ha ez valamilyen kritikus állapotot talál, ami meggátolhatja a scriptek működését, mint pl.: script bytecode corruptions. Ezekben az esetekben nem lenne túl bölcs hagyni a scripteknek elkapni a kivételt, így a megállíthatatlan kivételek szükséges ilyenkor. A kivételek kezelhetők használva a try-catch control block-ot:
Minden catch block értelmezni tud egy bizonyos fajta változót. A működési alapelv ugyanaz, mint a „select” állítás, egy típus lehet egy a típusnevekből vagy lehet egy a valahol a programban megjelenített szimbólum neve.
A try-catch block-ok lehetnek beágyazottak ( egyet egy másikba helyez) bármely más Falcon block-kal. (if, while, for, function stb..) A try-catch block funkciója a következő: bármikor, amikor egy utasítás a try (try-statements)-en belül egy kivételt képez, az írányítási folyam azonnal megtörik. Egy try.catch block azonnali, vagyis jelen idejű, ha a képzett objetum típusa megegyezik a catch block típusspecifikációjával. Az általános/teljes típusok (mint a StringType vagy ObjectType) elsőbbséget élveznek, aztán specifikus szimbólumok, melyek specifikációit használjuk a sorrend aspektusában, amik a catch ágakban vannak kinyilvánítva. Emiatt a catch block által értelmezett alosztályokat ajánlatos deklarálni azelőtt még, hogy a szülő értelmezve lett volna. Végül a típusozott block-ok közül az egyik megyezeik a kiváltott kivétellel, a kivételkezelőnek adódik át a továbbiakban, ha valós idejűről beszélünk. Ha a típus nélküli catch ág nem jelen idejű, a hiba kiváltódása az alkalmazás szintjéhez igazodik. A következő példa biztosít róla, hogy a felhasználó egy numerikus inputot fog emegadni:
A catch ág birtokolhat egy lehetésges variációt, ami tartalmazza a kivételt ami a try block által lett kiváltva. A kivétel bármilyen Falcon elem lehet pl.: számok, láncok, objektumok, ami megmutatja, hogy mi volt ppontosan a hibaüzenet állapota. A szabály alapján a Virtual Machine és minden könyvtár funkció csak egy hibaosztályt fognak kiváltani vagy egy az alosztályaiból származnak. Habár, scriptek és más kivétel könyvtárak bármilyen fajta elemet.
Érdekes dolog hibákat kiváltani ; a kivétel folyamat hirtelen megszakad és a lehetséges hibakezelés segítségül hívja, tehát a hibák kiváltása a scripteken belül gyakran elháríthatják a szükségét az „if” sorozatnak, mindegyik ellenőrzi a helyes dolgok meglétét minden lépésnél. A raise kulcsszó feldob egy elemet és kivételként kezeli. A script választhat 2 különböző beállítást, hogy hibákat váltson ki; az első, ami kreál egy esetet, amikor az Error class az Error() constructor-t használja, ami a következő paramétereket fogadja el:
Habár néha hasznos eldobni egy lighter object.et. Tegyük fel, hogy egy max és egy min kort akarunk felállítani a példánkban és így egy hibát hozunk létre, ami akkor váltódik ki, ha azok a limitek nem elfogadhatóak. Ebben az esetben, amit flow control excaption raising-nek hívunk, túlzás lehet. Példa:
Egy másik megvalósítása az előző kódrészletnek:
Látható is, hpgy ez a megoldás sokkal átláthatódd, kompaktabb, és elkülönül jobban a 3 szint.