Частая война в мультипарадигмальный языках программирования. Естественно всё можно разложить по своим местам дабы не спорить зря. Быстренько пробежимся по истории и разберём всё по полочкам.
Изначально была лишь процедурная парадигма программирования и были ошибки. Позже понадобились механизмы пользовательского отлова ошибок и были придуманы разные обработчики ошибок. После этого возникла объектно-ориентированная парадигма программирования, которая завоевала мир. В объектно-ориентированном программировании используются куда более продвинутые механизмы отлова ошибок, которые получили название «Исключения» (Exceptions), т.е. исключения это следующая ступень ошибок и работы с ними. По этому во многих популярных мультипарадигмальных языках программирования есть и ошибки и исключения. Обычно ошибки использовать легче т.к. они из эпохи процедурного программирования, в свою очередь исключения предоставляют куда более мощный функционал.
На фоне этого часто возникают споры, что лучше использовать ошибки или исключения. Естественно они порождаются банальным отсутствием информации. Нет ничего универсального, каждый вид конструкций языка приемлем в том или ином случае. Плюс ко всему можно одновременно использовать и ошибки и исключения если в этом есть смысл.
Часто люди используют исключения там где проще было бы применить механизм ошибок, но это право каждого программиста.
Да, пост ни о чём, но я просто хотел об этом написать в своём блоге.