На продукции все fatal обрабатываются исключениями а warrning,notices etc просто подaвляються,один словом их просто не показывают.
На скринах у Вас срабатывает модуль xdebug для тестирование самое то и Вашем случаи как раз их и отлавливает с помощью установки тригерра
Логика exception обрабатывать именно ошибки фатальные + с cutom errors.
Так же обрабатывание разных тип ошибок,распределяя их на обработку.
Тема названа не совсем корректно потому что exception не используют для dеbugging не посреднственно notice,warraning,deprecated
Про вложенность и исключения.
Если представить что у нас есть самолет.
Каждая деталь самолета разбита на классы.(Более сотни тысяч классов)
Каждая делать имеет свои "класс"(тип) в нашем случаи мы будет выкидыать исключение этого типа.
Например отказало колесо,в это случаи мы поймали исключение что это было именно:
Самолет->нижнаяя часть самолета->шосси-колесо
В нашем случаи класс шосси будет отвечать за состояние колес,и если он поймает исключение что колесо отказало.
Он будет уже принимать решение,что дальше делать.Возможно он попробует перезапустить его или либо достать запосное.(Неважно)
Задача проста,сделать так чтобы самолет работал и ошибка обработалась.
Поэтому у каждой детали есть свой тип ошибки и своя подгруппа.(Multiple Exception)
Вы никаким образом не поймаете огромную вложенность другим способом.