Вот хороший вопрос , я тоже ищу на него ответ :D когда я смотрю на описание метода, который возвращает result , я вижу какие могут быть варианты и точно знаю, что не будет брошено исключение(если это предполагает дизайн). Есть механизмы типа checked exception, которые в сигнатуре метода говорят о том ,что может быть брошено исключение но тогда получается некрасивый код когда, я не хочу его обрабатывать. Если метод бросает исключения но это нигде не задекларированно кроме доки(там тоже может быть что-то не указано) то часто, клиенты использующие этот метод 'забудут' обработать возможные исключения. И есть ещё один момент - это состояние в котором будет находится объект(приложение) в случае выброса исключения , которое зависит от того как оно обрабатывается и в каком месте , ведь обычно поток исполнения прерывается (может быть куча непредвиденных состояние которые могут повлечь баги). Пока я нашел такме минусы для себя но все равно ещё оч сильно сомневаюсь .