我有一个应用程序,就像其他任何应用程序一样,由于各种原因偶尔会崩溃。
当它崩溃时,它会正常运行并且用户会收到崩溃的好消息。同时在服务器上报告崩溃以进行分析,以便在将来的版本中修复它。但是,我希望应用程序能够继续完成崩溃。
这意味着我想以'原子'的方式运行表单。如果它关闭,它不会删除整个应用程序。用户应该只需要重新开始使用特定表单完成的工作。
这可以通过架构完成吗?或者新的框架版本可能有助于此吗?
应用程序主要在3.5#框架上构建,但它也使用了一些外部引用,一些COM和Web服务引用。
我对答案不感兴趣:'好好修复崩溃'。我和我的团队以及测试团队正在全天候工作。
答案 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
。