【问题标题】:Detecting Exceptions During Beta Testing在 Beta 测试期间检测异常
【发布时间】:2012-09-11 22:30:36
【问题描述】:

(见下文更新)

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

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

显然,我应该能够控制进程,以便在代码被释放时正常执行。

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

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

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

下面提到的解决方案听起来不错,稍作调整可能会奏效,只是目前不行。

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

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

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

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

提前致谢,

莎拉

【问题讨论】:

    标签: winforms visual-studio exception testing


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 很抱歉直到现在才回复。我尝试了代码,在 VS2012 IDE 中,异常处理程序被调用,但没有 IDE。操作系统处理程序会绕过我在程序中挂钩的处理程序。有关详细信息,请参阅我的另一篇文章。我必须继续玩弄它。
    【解决方案2】:

    好的,Google Uberlord 对我很失望,我发现这篇精彩的文章解决了这个问题。向全能的 Google 致敬。

    这里是链接: 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 the Code 的作者谈到了三种方法,第一种是 JRadness 提出的,不适用于 Windows 窗体。

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

    是啊!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-05
      • 2019-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      相关资源
      最近更新 更多