|
|
ИсключенияМодель исключений (exceptions) в PHP 5 проще, чем в других языках программирования Исключение можно сгенерировать (как говорят, "выбросить") при помощи оператора throw, и можно перехватить (или, как говорят, "поймать") оператором catch. Код выбрасывающий исключение, должен быть окружен блоком try, для того чтобы можно было перехватить исключение. Каждый блок try должен иметь как минимум один соответствующий блок catch. Так же можно использовать несколько блоков catch, перехватывающих различные классы исключений. Нормальное выполнение (когда не генерируется исключений в блоках try или когда класс выброшенного исключения не совпадает с классами, объявленными в соответствующих блоках catch) будет продолжено за последним блоком catch. Исключения так же могут быть сгенерированны (или перегерерированы - т.е. выброшены снова) оператором throw внутри блока catch. При генерации исключения, код следующий ниже оператора throw исполнен не будет, а PHP предпримет попытку найти первый блок catch, перехватывающий исключение данного класса. Если исключение не будет перехвачено, PHP выдаст сообщение об ошибке: "Uncaught Exception ..." (Неперехваченное исключение), если конечно не был определен обработчик ошибок при помощи функции set_exception_handler(). Пример #1 Выброс исключений
<?php Результат выполнения данного примера:
Наследование исключенийОпределенный пользователем класс исключения должен быть определен, как класс расширяющий (наследующий) встроенный класс Exception. Ниже приведены методы и свойства класса Exception, доступные дочерним классам. Пример #2 Встроеный класс Exception
<?php Если класс, наследуемый от Exception переопределяет конструктор, необходимо вызвать в конструкторе parent::__construct(), чтобы быть уверенным, что все дынные будут доступны. Метод __toString() может быть переопределен, что бы обеспечить нужный вывод, когда объект преобразуется в строку. Пример #3 Наследование класса Exception
<?php
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2008-2010 Prime Hosting |
![]() Хостинг Реселлинг хостинга VPS - Хостинг Аренда серверов Dedicated server |