c# - 如何在未处理的异常后继续运行?

标签 c# compact-framework windows-mobile-6

我的应用程序中有以下代码在出现未处理的异常后运行:

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            var exception = e.ExceptionObject as Exception;
            if (exception != null) MessageBox.Show(exception.Message + " - " + exception.StackTrace);
        }

但即使我捕获到未处理的异常,我的 Windows 移动应用程序也会关闭。当我捕获未处理的异常时如何防止关闭应用程序。我永远不想关闭我的应用程序。我想在这种情况下打开登录表单或其他任何不关闭应用程序的情况。

所以我想要的是防止关闭应用程序未处理的异常,如网络中断,...

我不能在每个代码中都使用 try catch ....

知道如何防止在网络中断或任何其他未处理的异常时关闭应用程序吗?

最佳答案

你不知道。当您收到 AppDomain 未处理的异常时,您的应用程序不再处于稳定状态。您具体要恢复到哪里?当你到了那个地步时,你唯一的选择,有充分理由,就是退出。你可以合理地 schedule yourself再次运行以确保应用程序返回,但更好的想法是在源头实际处理异常并防止它成为 UnhandledException。

关于c# - 如何在未处理的异常后继续运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7803168/

相关文章:

c# - 如何使用 .net compact framework 3.5 隐藏数据网格中的列

.net - 在 Windows Mobile 上打开/关闭 LED 灯和手电筒

c# - MsTest 生成的测试是实际的单元测试吗?

带有Visual Studio 2010的.NET Compact Framework?

c# - 创建自定义文本编辑控件

c# - CF 中的计时器不计时

c++ - 如何使用 Win32 Imaging API (Windows Mobile 6+) 将 HBITMAP 保存为 JPG?

visual-studio-2008 - 版本信息在 Visual Studio 2008 - Compact Framework/Win Mobile 6 中不起作用

c# - IDataContractSurrogate、NHibernate 和无效代理对象

c# - 如何在 Lambda LINQ 中排除属性而不是选择