我正在编写一个 WPF 应用程序,并且对我的任何 try block 都无法捕获的未处理异常感到恼火。所以我在 app.xml.cs 中添加了这两个强大的异常处理程序:
this.Dispatcher.UnhandledException += Application_DispatcherUnhandledException;
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
但它们对我不起作用。我仍然遇到这个崩溃:
App停止工作,问题事件名称:APPCRASH,故障模块名称:clr.dll
我现在该怎么做才能找到问题?我似乎已经尽可能地放置了 try/catch block 。
提前致谢。
最佳答案
你不能捕获一切。
一些异常即使在句柄仍然可以让你的程序处于不稳定状态,所以它仍然会崩溃,即使异常已经被处理。
我相信这些异常不是“可捕获的”,您必须找出导致它们的原因。
一个通用的编程规则是永远不要默默地捕捉异常,如果你不能正确处理它们,就让它们“弹出”。
为了不使程序崩溃而添加 try block 确实是个坏主意。你应该弄清楚为什么它会抛出异常。
另外,异常(exception)情况比条件更昂贵的资源。
资源:
Partly crashing application? How can I catch uncatchable exceptions?
First Chance exceptions
关于wpf - 当我有 CurrentDomain.UnhandledException 和 DispatcherUnhandledException 时,应用程序仍然崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9593152/