如何知道System.Windows.Forms.dll中System.InvalidOperationException的详细信息?
运行我的应用程序时,我在Visual Studio的“输出”面板中找到了exception日志。
System.Windows.Forms.dll中发生了’System.InvalidOperationException’类型的第一次机会exception
该应用程序的架构师如下。
我想知道调用的InvalidOperationException的详细信息,但它只显示在“输出”面板上,所以我无法捕获它以查看堆栈跟踪。 有没有办法知道它?
找到触发此类exception的最佳方法是将调试器设置为中断所有exception。
您可以通过转到Debug
菜单,选择Exceptions...
并选中Common Language Runtime Exceptions
旁边的Thrown
选项来完成此操作。 无论何时或是否处理,都会在抛出.NETexception的任何时候中断。
这不会解决您的问题,但它有助于识别它。
像这样使用try / catch:
try { //Some code here. //Also, set your breakpoints here. } catch (InvalidOperationException exc) { MessageBox.Show(exc.ToString()); } catch (Exception exception) { MessageBox.Show(exception.Message); }
C#(和其他语言)中的exception处理从最特定的exception到最不具体的exception类型。 上面的例子也将显示MessageBox
的堆栈跟踪。
尝试执行以下操作:
- 在必要的位置添加断点
- 右键单击断点,然后单击“When hit ..”
- 选中“打印消息”框,并使用它们显示的令牌显示所需的信息(例如,调用funciton,堆栈跟踪,线程ID /名称,进程ID /名称等)
- 如果您希望程序在打印消息后继续执行(即您不希望它在断点处暂停),还要检查“继续执行”框
您可能希望将此技术与try/catch
结合使用,正如其他人所建议的那样。 我不想重复其他人的答案中提供的代码,但我会使用Brian的try/catch
来包装你的调用,然后使用这种技术设置断点。
注意:您也可以使用此技术和“断点条件”来调用方法(即打印结果)和/或更改值(后者有点像黑客,但只有在完全必要时才应该这样做你正在使用64位应用程序)。 在这种情况下,这些附加function可能也可能不适用于您。
上述就是C#学习教程:如何知道System.Windows.Forms.dll中System.InvalidOperationException的详细信息?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/962389.html