НАсколько криво вот так работать с Error и Exception? В одном классе сосредоточены методы обработки и ошибок(set error handler) и исключений(set exception handler)namespace System\Core\Errors;
use \ErrorException;
use \Throwable;
class ErrorTrap
{
public function __construct()
{
set_exception_handler([__CLASS__, 'exceptionHandler']);
set_error_handler([__CLASS__, 'errorHandler']);
}
public function exceptionHandler(Throwable $exception)
{
//Тут пишется лог исключения (Для error отдельный лог как и для исключений)
//И отправка на e-mail/sms-gate информации о сбое
}
public function errorHandler($severity, $msg, $file, $line)
{
if (!(error_reporting() & $severity)) return;
throw new ErrorException($msg, 0, $severity, $file, $line);
}
}
Подозреваю что это оочень криво, ибо смешивается логика работы с ошибками и исключениями в одном классе(или я не прав?). Нужно ли их раскидывать по классам, чтоб соблюсти хоть немного принцип единой ответственности?
И можно ли вообще ошибки преобразовывать таким образом в исключения(наверное да, но не уверен)?
И еще, с появлением Throwable нужно ли плодить такое baseException/NotFoundException...(если да, то через через имплемент Throwable?)?

21 Авг 2019 в 07:03
213 +1
0
Ответы
1

Да, смешивание логики обработки ошибок и исключений в одном классе может быть не самым лучшим подходом с точки зрения принципа единой ответственности. Разделение их на отдельные классы поможет сделать код более читаемым и поддерживаемым. Например, можно создать отдельный класс для обработки ошибок и отдельный класс для обработки исключений.

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

С появлением интерфейса Throwable в PHP 7, не обязательно плодить собственные исключения. Вместо этого, можно использовать встроенные исключения PHP или создавать собственные классы исключений, реализующие интерфейс Throwable. Это делает код более совместимым с современными стандартами и позволяет более гибко управлять исключениями.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир