vIc*_*erg 44 c# debugging exception
当我调试一个C#程序并且我得到一个异常抛出(由代码抛出或由框架引发)时,IDE停止并让我到我的代码中的相应行.
现在一切都很好.
然后按"F5"继续.从这一刻起,它就像我在无限循环中一样接缝.IDE总是让我回到异常行.我必须Shift+ F5(停止调试/终止程序)才能离开他.
我在这里与一些同事交谈,他们告诉我,这种情况也会发生在他们身上.
发生了什么?
Mat*_*ard 47
您可能在Visual Studio中选中" 在未处理的异常上展开callstack "选项.当此选项打开时,Visual Studio将在异常之前展开,因此命中F5将保持撞击到同一个异常.
如果取消选中Visual Studio将在异常处断开的选项,但点击F5将继续超过该行.
此选项位于菜单工具 → 选项 → 调试 → 常规下.
Eri*_*ver 17
这是因为异常是未处理的,并且Visual Studio在没有以某种方式处理的情况下无法移过该行.简单地说,它是设计的.
您可以做的一件事是将执行点(黄线/箭头)拖放到代码中的前一个点并修改内存值(使用Visual Studio监视窗口),这样它们就不会导致异常.然后再次开始逐步执行代码1.
虽然停止执行并修复导致异常的问题,但如果不需要抛出则正确处理异常,这是一个更好的主意.
1这可能会产生意想不到的后果,因为您实际上是在重新执行某些代码(而不是重写执行).
Ces*_*sar 10
有人说这是设计使然,但以前从未有过这样的情况。您可以再次按 F5,代码将继续执行,直到结束或下一个异常捕获。
这是一种行之有效的有用行为,作为开发人员,我认为我们在调试和调查应用程序中的问题时不应该遇到人为障碍。
也就是说,我找到了一个解决方法(某种程度上):
对于过去比较简单的事情来说,这看起来很肮脏,工作量太大,但我想这就是我们今天要做的。
当 IDE 在有问题的代码行上中断时,它会在执行生成异常的行之前停止。如果继续,它只会再次执行该行,并再次出现异常。
如果您想跳过错误以查看如果没有发生错误会发生什么,您可以将黄色突出显示的行(接下来将执行的行)向下拖动到有问题的代码之后的下一行代码。当然,根据有问题的行未能执行的操作,您的程序现在可能处于导致其他错误的状态,在这种情况下,您并没有真正帮助自己太多,并且可能应该修复您的代码,以便异常不会发生不会发生,或者处理得当。
| 归档时间: |
|
| 查看次数: |
12050 次 |
| 最近记录: |