(见下文更新)
在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测试人员,即除了我自己以外的任何人都没有我的开发站。
因此,除非我遗漏了某些内容,否则问题仍然存在。
另一个问题中有代码示例,足以在几分钟内复制和粘贴并创建测试应用程序。 ]
提前致谢,
萨拉
答案 0 :(得分:1)
我不知道在Visual Studio中报告错误的任何自动方法,但这就是我的工作。
进入应用程序的UnhandledException事件。
使用nLog或Log4Net等日志框架记录从该事件中获取的异常和其他数据。或者只是写一个文本文件。
从您的应用程序中上传该数据,或让测试人员将其发送给您。
答案 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甚至解决了我继续和中止的另一个问题。操作系统被绕过了。
呀!