Здравствуйте, MadHuman, Вы писали:
MH>а. в MethodA делаем кэтч и генерим новое исключение (возможно спец. класса) с передачей в качестве InnerException исходного исключения.
MH>особенно такое имеет смысл если с уровня MethodA надо в новое исключение включить какую-то доп. информацию. Например о параметре с которым вызван метод или о том, на какой фазе процесса упали и тп.
MH>б. тоже, но перегенерим исходное исключение, добавив в исходный инстанс исключения в Data эту доп. информацию.
в. Вообще не трогаем исключения без лишней необходимости.
MH>особенно эта неоднозначность проявляется при построении какой-то финальной обработки ошибки (например веб-реквеста), когда хз что выдать юзеру — либо верхнее, либо вложенное.
В случае веб-реквеста пишется специальный мидлвер, который знает в лицо некоторое количество well known исключений — UnauthorizedAccessException, NotFoundException, ArgumentException и т.п., и заворачивает их в соответствующие HTTP респонсы с error info в теле. А если не знает — вертает 500 и, при соотв. настройках, в теле json с инфой об исключении.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>