Try. Перехват и обработка ошибок
^try{код,ошибки которого попадают…}{…в этот обработчик в виде $exception}
Если по ходу работы кода возникла ошибка, создается переменная $exception, и управление передается обработчику.
$exception, это такой hash:
$exception.type |
строка, тип ошибки. Определен ряд системных типов, также тип ошибки может быть задан в операторе throw. |
$exception.source |
строка, источник ошибки (ошибочное имя файла, метода, …) |
$exception.file $exception.lineno $exception.colno |
файл, содержащий source, номера строки и колонки в нем |
$exception.comment |
комментарий к ошибке, по английски |
$exception.handled |
истина или ложь, флаг «обработана ли ошибка» необходимо зажечь этот флаг в обработчике, если вы обработали переданную вам ошибку |
$exception.handled(1)
Если обработчик не зажег этого флага, ошибка считается необработанной, и передается следующему обработчику, если он есть.
Если ошибка так и не будет обработана, если есть, вызывается метод unhandled_exception и ему передается информация об ошибке, стек вызовов, приведших к ошибке, и выдаются результаты его работы. А также производится запись в журнал ошибок веб-сервера.