Исключения

Исключения (exceptions) — это технология, позволяющая писать код восстановления после серьезной ошибки в удобном для программиста виде. С применением исключений перехват и обработка ошибок значительно упрощается.

Исключения также позволяют удобно передавать информацию о возникшей ошибке вниз по дереву (стеку) вызовов функций. Таким образом, код восстановления может находиться даже не в текущей процедуре, а в той, что ее вызывает.

Исключение — это некоторое сообщение об ошибке. При своей генерации оно автоматически передается в обработчик исключения. Любое исключение в программе представляет собой объект некоторого класса, создаваемый, как обычно, оператором new. Этот объект может содержать различную информацию, например, текст диагностического сообщения, а также номер строки и имя файла, в которых произошла генерация исключения. Допустимо добавлять и любые другие параметры.

Для работы с исключениями используют конструкции try...catch.

Код обработчика исключения помещается в блок инструкции catch(Exception $e). Аргумент блока catch определяет, в какую переменную должен быть записан перехваченный объект-исключение перед запуском кода обработчика. Также обязательно задается тип исключения — имя класса. Обработчик будет вызван только для тех объектов-исключений, которые совместимы с указанным типом (например, для объектов данного типа).

В блоке tryразмещается код, который может сгенерировать исключение. Любые исключения, сгенерированные внутри него (и только они), будут переданы соответствующему обработчику.

Инструкция throwиспользуется для генерации исключения. Генерацию также называют возбуждением или даже выбрасыванием исключения. Инструкция throw не просто генерирует объект-исключение и передает его обработчику блока catch. Она также немедленно завершает работу текущего try-блока. Любое исключение представляет собой обычный объект РНР, который мы и создаем в операторе new.

<?php ## Простой пример использования исключений,

echo "Начало программы.<br>";

try {

// Код, в котором перехватываются исключения.

echo "Все, что имеет начало...<br>";

// Генерируем ("выбрасываем") исключение.

throw new Exception("Hello!");

echo "...имеет и конец.<br>";

} catch (Exception $e) {

// Код обработчика.

echo " Исключение: {$e->getMessage()}<br>";

}

echo "Конец программы.<br>";

?>

//результат работы сценария Начало программы.

Все, что имеет начало...

Исключение: Hello!

Конец программы.

 








Дата добавления: 2015-08-26; просмотров: 581;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.