Заключение исключений в более значимые исключения для удобства конечного пользователя - PullRequest
0 голосов
/ 22 декабря 2010

При обработке исключений иногда рекомендуется заключать исключение в более значимое исключение для удобства пользователя.Например, включите исключение timeoutexception в исключение networke.

Однако каждое выбрасываемое исключение будет чуждо пользователю.Неужели лучше не оборачивать каждое исключение, которое может увидеть пользователь?И если это так, может потребоваться создание некоторых пользовательских исключений только для этой цели, что кажется очень неэффективным.

Спасибо

1 Ответ

0 голосов
/ 22 декабря 2010

Я тоже думал об этой проблеме раньше.

Я не думаю, что вам следует оборачивать каждое исключение, которое может увидеть пользователь, потому что, хотя для пользователя не имеет значения, какое именно исключение было выдано, оно имеет значение для вас.Если вы выбрали то, что должен видеть пользователь, вы, вероятно, в конечном итоге закроете все на самом высоком уровне, и вы потеряете всю специфичность в своем коде.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...