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