【发布时间】:2018-02-28 13:20:36
【问题描述】:
我有一个 C# WPF 应用程序,它抛出以下错误消息并崩溃:
System.AccessViolationException:试图读或写保护 记忆。这通常表明其他内存已损坏。
然后我在代码中添加了以下异常处理程序。并且还在抛出上述异常的方法的开头添加了以下代码行。
throw new System.AccessViolationException();
当发生上述异常时,现在在我的本地计算机上单击应用程序 exe 时会执行异常处理程序,但应用程序仍然崩溃。我需要能够防止应用程序崩溃。不知道该怎么做?
application.DispatcherUnhandledException += ApplicationDispatcherUnhandledException;
TaskScheduler.UnobservedTaskException += TaskScheduler_UnobservedTaskException;
AppDomain currentAppDomain = AppDomain.CurrentDomain;
currentAppDomain.UnhandledException += new UnhandledExceptionEventHandler
(UnhandledExceptionHandler);
谢谢。
【问题讨论】:
-
通过修复访问冲突。
-
异常的堆栈跟踪肯定会告诉您在哪里发生异常。检查该代码,您显然做错了什么会破坏您的记忆(可能是一些本机或 p/invoke 调用)。尝试解决这个问题。如果没有看到 (relevant) 代码,我们无法判断您做错了什么。
-
你不想让它崩溃,用
try catch包裹它,但它仍然不能解决你的问题。 -
可以显示
ApplicationDispatcherUnhandledException的内容吗?
标签: c# wpf exception exception-handling