Я сейчас работаю в PHP. Я работаю над системой ошибок для моей CMS, которую я создаю (для удовольствия). Для фатальных ошибок в моей системе (не в компиляторе php) я создал класс FatalException, который расширяет встроенный класс Exception. Так как эти типы ошибок, во всяком случае, останавливают систему, я выбрал выход в __construct.Это плохое программирование, чтобы просто бросать исключения, а не в блок catch try?
class FatalException extends Exception{
public function __construct($message) {
exit("<h1 style='color:red;' >FATAL ERROR: $message </h1>");
}
}
Так что в моем коде, я кое-что проверить, как подключение к базе данных, и если он не может, то я буду просто бросить FatalException («Не удается подключиться к базе данных: $ database_error_message»). Он не будет в блоке try/catch.
Когда я запускаю код и не могу подключиться к базе данных, например, все, что я вижу на экране, - это предложение с большими красными буквами. Так что все работает отлично, но это плохая практика/кодирование?
EDIT:
На самом деле на самом деле это не начать этот путь. Сначала я регистрировал ошибку, а затем выходил из области catch, но потом я подумал, что если все фатальные ошибки выйдут в любом случае, тогда просто добавьте конструктор in. Тогда я заметил, что на самом деле он не попал в зону улова, которую он покидал. Так положить заявление в Try/поймать блок был видом спорного вопроса. Это приводит к вопросу.
Вы единственный, кто действительно ответил на вопрос. Я все равно собирался заменить исключение на выход, но мне было просто интересно. –
Заменить исключение на функцию, которая содержит 'exit()' first. Потому что позже вы также захотите заменить 'exit()'. Часть неудачной практики - 99% 'exit()' в конце. Ваш код сейчас просто хаотичен. А также плохая практика, потому что она содержит 'exit()'. Обнаружить его в функции - это выход на данный момент. –
Первое, что проверяет мой код, - это подключение к базе данных. Все, кроме файла config.ini, хранится в базе данных. Поэтому, если он не может подключиться к базе данных, нет необходимости загружать что-либо еще. Вывод простого не может подключиться к базе данных, это все, что мне действительно нужно. –