PHP7 становится очень похож на Java. Например, если в последнем фрагменте кода убрать $ перед переменными, то будет код на Java (который, кстати, не скомпилируется из-за exception has already been caught)
Разве C# и Java не похожи? :) Конечно, можно долго спорить и том, что именно можно называть «похожестью», но так уж сложилось, что многие конструкции почти во всех ООП языках выглядят «похожим» образом.
Хорошо что они отошли от путающих BaseException, его наследника EngineException и пришли к Throwable и Error. Главное чтобы ещё сообщество ими правильно воспользовалось и тогда работать с PHP станет гораздо удобнее.
Throwable exception и ошибки в php7