Я тоже думал об этой проблеме раньше.
Я не думаю, что вам следует оборачивать каждое исключение, которое может увидеть пользователь, потому что, хотя для пользователя не имеет значения, какое именно исключение было выдано, оно имеет значение для вас.Если вы выбрали то, что должен видеть пользователь, вы, вероятно, в конечном итоге закроете все на самом высоком уровне, и вы потеряете всю специфичность в своем коде.
Допустим, вы написали метод для связи с веб-службой иразобрать ответ.В вашем коде вы можете захотеть различить ошибку сервера (NetworkException) и ошибку синтаксического анализа (IOException).Для обоих вы бы просто сказали пользователю «произошла ошибка», так как им все равно, что конкретно пошло не так.Однако вам может потребоваться зарегистрировать другое сообщение или ответить другим способом в ответ на одно из них.