НАсколько криво вот так работать с Error и Exception? В одном классе сосредоточены методы обработки и ошибок(set error handler) и исключений(set exception handler)namespace System\Core\Errors
use \ErrorException
use \Throwable
class ErrorTra

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
186 +1
0
Ответы
1

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

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

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

20 Апр в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 700 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир