Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Если в каком-то месте системы может генериться достаточно большое количество исключений разного типа, то метод может оказаться довольно удобен.
validate(), но вместо того чтобы вызывать его непосредственно в блоке catch, мы передаем в метод catchException нашего исключения $this и вызываем validate оттуда. Это гарантирует нам, что мы не забудем сделать нужные проверки.class MyException: Exception {}
class MyException: Exception {}, то это тоже хорошо. Наследование классов исключений — занятие чреватое. В мире .NET об угрозах такого кодирования написано в «CLR via C#». В общем, широкий набор классов исключений это хорошо. Главная причина в том, что catch (MyConcreteException ex) будет известно что обрабатывать. А в случае наличия наследников, всё будет сильно сложнее. Например, может потребоваться писать мерзкие проверки вида if (ex is MyConcreteSpecificException)…
Умные эксепшены