0

(见下面的更新)

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

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

Obviosualy,我应该能够控制这个过程,这样当代码被释放时,就会发生正常的执行。

是的,我知道并使用 try/catch 块,但我说的是一种类似于 Visual Studio 异常捕获器和报告器的方法,可能只是编译到产品中并用于部署到 beta 测试人员。

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

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

下面提到的解决方案听起来很棒,并且经过调整可能会奏效,只是目前不行。

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

目的是让我的异常处理程序被调用。如果我在 VS2012 IDE 中工作,我不需要超级异常处理程序。处理程序的目的是为最终用户和 beta 测试人员服务,即除我自己以外的任何人,他们不会拥有我的开发站。

因此,除非我遗漏了什么,否则问题仍然存在。

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

提前致谢,

莎拉

4

2 回答 2

1

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

  1. 挂钩到应用程序的UnhandledException事件。

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

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

于 2012-09-11T22:40:52.313 回答
0

好的,Google Uberlord 对我很失望,我发现这篇精彩的文章解决了这个问题。赞美全能的谷歌。

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

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

Application.ThreadException += 

新 System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

而不是

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

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

作者甚至解决了我的另一个问题 Continue and Abort。操作系统被绕过了。

是的!!

于 2012-10-04T21:50:43.867 回答