2015-07-25 4 views
2

У меня есть часть кода, которая называется Finally(), которая обрабатывает необработанные исключения, подписавшись на событие UnhandledException (я говорю о WinForms).Где я должен поместить обработчик обработанных обработок без обработки?

AppDomain.CurrentDomain.UnhandledException += (_, __) => Finally(__.ExceptionObject as Exception); 

Куда мне помещать эту строку? В конструктор static Program() или в метод static void Main()? Есть ли различия?

+0

вы можете подписаться в любом месте метода 'Main', но до того, как произошел« необработанный исключение ». –

+0

Вы ищете это [UnhandledException] (http://stackoverflow.com/a/8148174/1257607)? – DanielV

+0

Кроме того, это может сделать трюк для вас: [Application.SetUnhandledExceptionMode Method] (https://msdn.microsoft.com/en-us/library/system.windows.forms.application.setunhandledexceptionmode (v = vs.110) .aspx) – DanielV

ответ

0

Хотя оба они вызываются в начале вашей программы, я бы разместил его в методе Main(), потому что любые исключения, возникающие из статического конструктора, сложнее отлаживать.

Смежные вопросы