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.:
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:
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.
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.