在Beta测试期间检测异常

时间:2012-09-11 22:30:36

标签: winforms visual-studio exception testing

(见下文更新)

在VisualStudio 2010环境中运行时,我可以轻松判断我的Winform应用程序是否导致异常。我只需要去Debug |例外并确保选中两列复选框。然后我运行应用程序,如果有任何异常,我会直接进入有问题的代码片段。

当我向测试人员提供测试版本时,如何在测试期间确定异常。我不希望测试人员在Visual Studio中运行,就像普通用户一样。我仍然想知道是否有例外和相关细节。

Obviosualy,我应该能够控制进程,以便在代码发布时正常执行。

是的,我知道并使用try / catch块,但我在讨论类似于Visual Studio异常捕获器和记者的方法,可能已编译到产品中并用于部署到beta测试人员。

也许Visual Studio具有这样的功能,在这种情况下,在何处以及如何设置,或者可能是第三方组件。

[更新: 我添加了两个子问题,您可以在Unhandled Exception next line or exit找到。

下面提到的解决方案听起来很棒,调整可能有效,但目前还不行。

2010年和现在2012年的Visual Studio内部运行良好。调用异常处理程序,好吧VS在该行中断后我说要继续。我决定在VS2012 IDE之外进行测试,对此有好处。操作系统捕获错误,显示标准“发生未处理的异常”对话框,提供详细信息以及继续和退出按钮。选择continue,只需继续应用程序,不会陷入我的超级异常处理程序。选择相当,白色的应用程序并显示标准关闭窗口对话框。退出按钮也不会调用我的超级处理程序。

目的是调用我的异常处理程序。如果我在VS2012 IDE中工作,我不需要一个超级异常处理程序。处理程序的目的是为最终用户和beta测试人员,即除了我自己以外的任何人都没有我的开发站。

因此,除非我遗漏了某些内容,否则问题仍然存在。

另一个问题中有代码示例,足以在几分钟内复制和粘贴并创建测试应用程序。 ]

提前致谢,

萨拉

2 个答案:

答案 0 :(得分:1)

我不知道在Visual Studio中报告错误的任何自动方法,但这就是我的工作。

  1. 进入应用程序的UnhandledException事件。

  2. 使用nLog或Log4Net等日志框架记录从该事件中获取的异常和其他数据。或者只是写一个文本文件。

  3. 从您的应用程序中上传该数据,或让测试人员将其发送给您。

答案 1 :(得分:0)

好的,Google Uberlord对我很不满意,我找到了解决这个问题的精彩文章。赞美全能的谷歌。

这是链接: http://www.switchonthecode.com/tutorials/csharp-tutorial-dealing-with-unhandled-exceptions

基本上,JRadness有正确的想法,只是略有错误。他本应该用

Application.ThreadException += 

new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

而不是

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

Switch on the Code上的作者谈到了三种方法,第一种是JRadness提出的方法,不适用于Windows表单。

autor甚至解决了我继续和中止的另一个问题。操作系统被绕过了。

呀!