A Pike programozási nyelv

Kivételkezelés

Szintaxis

A hibák és kivételek elkapására a Pike nyelvben a catch használható, mégpedig egy blokk prefixeként, azt kifejezéssé alakítva, pl.:

catch { utasítások }

Ha hiba (megjegyzés: az angol eredeti konzekvensen az "error" szót használja, ezért a fordítás is ennek megfelelő) történik, a catch a hiba leírásával tér vissza. A leírás az alábbi formátumban születik:

({ "hiba leírása", backtrace() })

Ha nem történik hiba, a catch visszatérési értéke nulla. Hibát magunk is kiválthatunk a throw illetve az error függvény használatával. Az error(string f, mixed ... args) a throw( ({ sprintf(f, @args), backtrace() }) ) könnyebben olvasható változata.

int x,y; // Nullával való osztást ("division by zero") válthat ki array hiba = catch { x/=y; };

A le nem kezelt hibákra az általános hiba kezelő meghívja a master()- >handle_error() -t. A backtrace() a hívási verem aktuális tartalmáról szolgáltat információt.