我正在编写一个WPF应用程序,并且被一个未处理的异常所困扰,这个异常无法被我的任何try块捕获。所以我在app.xml.cs中添加了这两个强大的异常处理程序:
this.Dispatcher.UnhandledException += Application_DispatcherUnhandledException;
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
但他们不适合我。我仍然遇到这个崩溃: 应用已停止工作,问题事件名称:APPCRASH,故障模块名称:clr.dll
我现在该怎么做才能找到问题?我似乎已经尽可能地放了try / catch块。
提前致谢。
答案 0 :(得分:0)
你无法抓住一切。
有些异常甚至可以在句柄仍然使程序处于不稳定状态时出现,因此即使已经处理了异常,它仍然会崩溃。
我认为这些例外不是“可捕获的”,你必须找到它们被造成的原因。
一般的编程规则是永远不要无声地捕获异常,如果你无法正确处理它们,就让它们“弹出”。
添加try块以免崩溃你的程序真的是个坏主意。你应该弄清楚它抛出异常的原因。 再加上例外情况比条件更为昂贵。
资源:
Partly crashing application? How can I catch uncatchable exceptions?