Общая стратегия обработки исключений для .NET - PullRequest
12 голосов
/ 26 июня 2009

Я привык иметь блоки try / catch в каждом методе. Причина этого в том, что я могу поймать каждое исключение в точке нарушения и записать его. Из моего чтения и разговоров с другими я понимаю, что это не популярное мнение. Нужно только поймать то, с чем вы готовы справиться. Тем не менее, если я не поймаю в момент нарушения, было бы возможно никогда не регистрировать это нарушение и не знать об этом. Примечание: когда я ловлю и не справляюсь, я все равно бросаю. Это позволяет мне разрешить исключению распространяться на что-то, что с ним справится, и в то же время позволяет регистрировать его в точке нарушения.

Итак ... Как можно избежать попытки / перехвата в каждом методе, но при этом регистрировать ошибку в том месте, где она произошла?

Ответы [ 11 ]

0 голосов
/ 26 июня 2009

Как можно избежать попытки / перехвата в каждом методе, но при этом регистрировать ошибку в том месте, где она произошла?

Зависит от хостинга env. Asp.Net, WinForms и WPF имеют разные способы захвата необработанных исключений. Но как только глобальный обработчик передает экземпляр исключения, вы можете определить точку выброса из исключения, поскольку каждое исключение включает в себя трассировку стека.

...