К этому меня подтолкнули воспоминания с одной из работ, где на них стоял строгий запрет, а все ошибки должны были быть реализованы в функциональном стиле
То есть, метод возвращает некий объект результата, который допускает значение ошибки
И сношайся потом с этим как хочешь)
Мне такой подход казался непродуктивным
Ну казалось бы, что проще написание выброса, и потом отлова где-нибудь сверху?
При этом ООПшность языков позволяет создать объект исключения информативно, чтобы составить качественное сообщение пользователю
Естественно, это избавляет от бойлерплейта по типу GO
Энтузиасты с калькулятором выяснили, что использование исключений вместо проверки на ошибку сокращает ветвление в 175 раз
А это серьёзная разгрузка компилятора!
А потом, я наткнулся на эту статью на Хабре, где оказалось, что исключения ещё и быстрее в производительности
Короче, не вижу теперь смысла не использовать исключения