Winforms 在Beta测试期间检测异常

Winforms 在Beta测试期间检测异常,winforms,visual-studio,exception,testing,Winforms,Visual Studio,Exception,Testing,(见下文更新) 在VisualStudio 2010环境中运行时,我可以轻松判断Winform应用程序是否导致异常。我只需要转到Debug | Exceptions并确保选中了两列复选框。然后,我运行应用程序,如果出现任何异常,我就会直接跳入有问题的代码段 当我将测试构建交给测试人员时,如何在测试期间确定异常。我不希望测试人员像普通用户一样在VisualStudio中运行。我仍然想知道是否有例外和相关的细节 显然,我应该能够控制这个过程,这样当代码被释放时,正常的执行就会发生 是的,我知道并使用

(见下文更新)

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

当我将测试构建交给测试人员时,如何在测试期间确定异常。我不希望测试人员像普通用户一样在VisualStudio中运行。我仍然想知道是否有例外和相关的细节

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

是的,我知道并使用try/catch块,但我说的是一种类似于VisualStudioException catcher和reporter的方法,可能只是编译到产品中并用于部署到beta测试人员

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

[更新: 我添加了两个子问题,您可以在中找到

下面提到的解决方案听起来很棒,稍加调整可能会奏效,只是目前还不行

在VisualStudio内部,2010和now 2012都能很好地工作。异常处理程序会被调用,在VS断线后,我说继续。我决定在VS2012 IDE之外进行测试,这是件好事。操作系统捕获了错误,显示了“发生了未处理的异常”的标准对话框,提供详细信息以及“继续”和“退出”按钮。选择“继续”,只会继续应用程序,而不会将其捕获到我的uber异常处理程序中。选择“完全”,会使应用程序变白并显示标准的关闭窗口对话框。退出按钮也不会调用我的uber异常处理程序

这样做的目的是调用我的异常处理程序。如果我在VS2012 IDE中工作,我不需要uber异常处理程序。该处理程序的目的是为最终用户和beta测试人员,即除我之外的任何人,也就是不会拥有我的开发站的人

因此,除非我遗漏了什么,否则问题仍然悬而未决

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

提前感谢,


Sarah

我不知道在VisualStudio中有任何自动报告错误的方法,但下面是我所做的

  • 钩住应用程序的事件

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

  • 从应用程序中上传数据,或者让beta测试人员将其发送给您


  • 好吧,谷歌超级领主把皮蒂带到我身上,我发现这篇精彩的文章解决了这个问题。赞美全能的谷歌

    以下是链接:

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

    Application.ThreadException += 
    
    新System.Threading.ThreadExceptionEventHandler(应用程序线程异常)

    而不是

    AppDomain.CurrentDomain.UnhandledException += 
        new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
    
    《打开代码》的作者谈到了三种方法,第一种是JRadness提出的,不适用于Windows窗体

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


    是的

    很抱歉直到现在才回复。我尝试了这段代码,在VS2012 IDE中调用了异常处理程序,但没有IDE就不能调用。操作系统处理程序绕过了我在程序中钩住的那个。请参阅我的其他帖子以了解更多详细信息。我必须继续玩它。