Был ли trigger_error () в PHP устаревшим для чего-то лучшего в PHP5? - PullRequest
3 голосов
/ 21 апреля 2009

Я использовал это, когда хотел вызвать ошибки в PHP, происходящие из фона PHP4. Обратите внимание, что у меня был свой set_error_handler() для обработки этих ошибок.

if ($error) {
    trigger_error('Sorry, error has occured');
}

Я не могу вспомнить, где, но когда-то кто-то сказал мне, что я должен «использовать исключения». Поскольку я переписываю большую часть своего старого кода, я подумал, что сейчас самое время получить несколько полезных советов по моей реализации обработки ошибок.

Теперь, когда я использую PHP5 (и немного умнее, чем когда я писал старый код), мой trigger_error() - это просто старый способ работы, и если да, то как лучше всего справляться с этим? ошибки в PHP5?

Ответы [ 2 ]

4 голосов
/ 21 апреля 2009

Да, вы можете начать изучать модель исключений PHP 5. Помните, однако, что только то, что что-то новое, не означает, что вы должны принять это. Применяйте только те функции, которые вам нужны и имеют смысл в вашем домене.

При этом я чувствую, что исключения - это хорошая концепция для понимания, и даже если вы решите не принимать их, вам будет лучше для этого опыта.

Я хотел бы предложить вам прочитать PHP: Исключения - Руководство :

PHP 5 имеет похожую модель исключений к тому из другого программирования языки. Исключение может быть выброшено, и пойман («пойман») в PHP. Код может быть заключен в блок try, чтобы облегчить ловлю потенциальные исключения. Каждая попытка должна иметь хотя бы один соответствующий улов блок. Несколько блоков захвата могут быть используется для ловли различных классов exeptions. Нормальное исполнение (когда нет исключение выдается при попытке блок, или когда улов соответствует класс брошенного исключения не настоящее) будет продолжаться после этого последнего блок catch определен в последовательности. Исключения могут быть выброшены (или переброшено) в блоке улова.

Я бы также рекомендовал вам прочитать Что такое исключение? (Обратите внимание, что это учебник по Java, но концепции универсальны)

Когда в методе возникает ошибка, метод создает объект и передает его в систему времени выполнения. Объект, называемый объектом исключения, содержит информацию об ошибке, включая ее тип и состояние программы на момент возникновения ошибки. Создание объекта исключения и его передача в систему времени выполнения называется генерацией исключения.

Редактировать: Чтобы реализовать глобальный обработчик исключений (в основном, чтобы установить обработчик исключений по умолчанию, который будет обрабатывать ранее необработанные исключения), вы захотите нам set_exception_handler функция.

2 голосов
/ 21 апреля 2009

Использование исключений - это объектно-ориентированный способ запуска и обработки собственных ошибок приложения.

Тема руководства PHP по исключения , вероятно, является хорошим местом для начала.

Вот небольшой пример:

function doSomething() {
    if ($error) {
        throw new Exception('Some descriptive error message.');
    }
}

try {
    doSomething();
}
catch (Exception $e) {
    die('<p class="error">' . $e->getMessage() . '</p>');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...