应用程序崩溃

时间:2010-06-02 16:21:27

标签: c# crash

我有一个应用程序,就像其他任何应用程序一样,由于各种原因偶尔会崩溃。

当它崩溃时,它会正常运行并且用户会收到崩溃的好消息。同时在服务器上报告崩溃以进行分析,以便在将来的版本中修复它。但是,我希望应用程序能够继续完成崩溃。

这意味着我想以'原子'的方式运行表单。如果它关闭,它不会删除整个应用程序。用户应该只需要重新开始使用特定表单完成的工作。

这可以通过架构完成吗?或者新的框架版本可能有助于此吗?

应用程序主要在3.5#框架上构建,但它也使用了一些外部引用,一些COM和Web服务引用。

我对答案不感兴趣:'好好修复崩溃'。我和我的团队以及测试团队正在全天候工作。

3 个答案:

答案 0 :(得分:2)

同时处理AppDomain.CurrentDomain.UnhandledException事件可能有所帮助。

答案 1 :(得分:1)

根据应用程序的类型,有一个未处理的异常处理程序 在大多数应用中。

在Web应用程序中,System.Web.HttpApplication有一个错误事件。

在Wpf Applications System.Windows.Application中有一个DispatcherUnhandledException事件。

在Windows窗体中,System.Windows.Forms.Application具有ThreadException事件。

您可以访问这些事件并处理任何超出您控制范围的异常。

答案 2 :(得分:0)

您需要在最合适的级别捕获异常(假设它是被引发的异常)。

如果您希望应用程序继续运行,如果当前表单引发异常,那么您将需要类似以下代码的内容:

try
{
    // Show your form
}
catch (YourException ex)
{
    // log the exception
}

如果可以引发多个异常,则应明确捕获这些异常 - 陷阱Exception