fisher
накатила суть
как уже кто-то отмечал выше, единственная "настоящая" польза исключений - возможность не городить кучу проверок успешности вызовов, а обернуть эти вызовы в try/catch. но как только вы включаете стиль "но это не обязательно ошибка" - всё, туши свет, начинается полный переход проверок всех состояний через ловлю эксепшенов, и код становится слишком запутан. эксепшен - это именно ошибка, исключение. не валидация. и уж точно это не переход на другой уровень логики, вышеприведенный пример - это жесть.