Мне обычно нравится использовать Исключения в такой ситуации: это позволяет мне хранить весь код обработки ошибок в одном месте.
Например, я бы использовал что-то вроде этого:
try {
// Some code
// Some code that throws an exception
// Some other code -- will not be executed when there's been an Exception
} catch (Exception $e) {
// Log the technical error to file / database
// Display a nice error message
}
При этом весь код обработки ошибок находится в блоке catch
- и не разбросан по всему моему приложению.
Обратите внимание, что многие функции PHP не выдают исключений, а только выдают предупреждение или ошибку ...
Для них вы можете использовать set_error_handler
, чтобы определить свой собственный обработчик ошибок - который может вызвать исключение ;-)
Например, см. Пример на странице справочника ErrorException
.
Хотя для многих ошибок / предупреждений это будет работать очень хорошо, следует помнить, что оно не будет работать для Parse Error
и Fatal Error
:
- Первый тип фактически вызывается до того, как код PHP на самом деле выполняется
- И второй вид ... ну ... Фатальный.
И я бы никогда не поместил ни die
, ни exit
в середину моего кода: это, на мой взгляд, один из худших возможных способов устранения ошибок.
Я бы также настроил свой сервер / приложение так: