$this->filePath = $filePath;
$this->data = parse_ini_file($filePath, true);
public function __construct($filePath) {
Давайте рассмотрим класс для получения некоторых конфигурационных данных из ini-файла.
Для генерации исключения используется ключевое слово throw и экземпляр класса Exception, который очень часто создаётся прямо после инструкции throw. С английского throw переводится как «бросать», что очень точно описывает поведение этого оператора, который может генерировать (бросать) исключения, предоставляя коду, который вызвал метод, в котором расположен этот оператор, самому обрабатывать исключение.
Генерация исключений
__toString магический метод, который вызывается, когда экземпляр класса Exception приводится к строке.
getTraceAsString возвращает строковую версию данных, которые возвращает метод getTrace.
getTrace возвращает многомерный массив, содержащий последовательность методов, вызов которых привёл к генерированию исключения. Так же содержит параметры, которые были переданы этим методам и номера строк, где осуществлялись вызовы.
getLine возвращает номер строки в которой было сгенерировано исключение.
getFile возвращает имя файла в котором было сгенерировано исключение.
getCode возвращает код ошибки (тип int), который был передан конструктору.
getMessage возвращает строку, которая была передана конструктору и содержит сообщение об ошибке.
Конструктор класса Exception может принимать два необязательных параметра: строка, содержащие сообщение об ошибке и её код. Класс Exception так же содержит методы, помогающие установить причину возникшей ошибки.
Исключение это объект, являющийся экземпляром встроенного класса Exception. Этот объект создаётся для хранения информации о произошедшей ошибке и для вывода сообщений о ней.
Для решения всех этих проблем и был придуман механизм обработки исключений.
Под исключительной ситуацией понимают такую ситуацию возникшею в ходе выполнения кода, когда неясно, что делать дальше или дальнейшее выполнение кода бессмысленно. К примеру, скрипту не удалось установить соединение с базой данных, тогда добавление или выборка данных из неё заведомо бессмысленна. В php в подобных ситуациях часто нативная функция просто возвращает false и выполнение заведомо неработающего кода продолжается. Чтобы избежать подобной ситуации можно проверять значение возвращаемое функцией и, в случае если оно говорит о произошедшей ошибке, выводит предупреждение. Такой подход имеет некоторые недостатки. Во-первых, для изменения действий выполняемых при ошибке пользователю вашего кода придётся редактировать ваш код. Намного лучше было бы позволить ему самому определять механизм обработки этой ошибки. Во-вторых, возвращённое функцией значение не всегда может быть верно расценено, или вовсе остаться не проверяемым, тогда в случае ошибки придётся тратить время на выяснение её причин. В-третьих, не всегда верно стремится обработать любую проблему прямо в методе или в функции, ведь в таком случае валидация параметров и обработка ошибок может загромоздить изначально достаточно простой код. Намного лучше каким-нибудь образом сообщить пользователю вашего кода, что что-то пошло не так, позволив ему самому решать, что делать в таком случае.
15 декабря 2012 / Категория: /
ООП в PHP: Исключения
Исключения в PHP. Генерация, обработка исключений | Блог веб-разработчиков
Комментариев нет:
Отправить комментарий