当程序中出现意外异常时(在调试器中)。有时你只想跳过它,因为在那个时候杀死程序比继续更有害。或者您只是想继续,因为您对另一个错误/错误更感兴趣
是否有选项/ compilerflag / secretswitch来启用它?
我理解异常应立即解决,但有些情况(如我所描述),其中只是想暂时跳过它
答案 0 :(得分:6)
如果代码中没有适当的catch块,则无法执行此操作。但是,我不记得曾经想要这样做:如果您的代码不知道如何真正处理异常,为什么要继续?那时候你状态很糟糕 - 继续下去会很危险。
您能举例说明为什么要继续调试器会话而不是生产代码吗?
答案 1 :(得分:3)
C#中的异常不可恢复,但事件是 - 这就是通常实现可恢复异常的方式:cancellable events。另请参阅this question。
答案 2 :(得分:2)
使用try-catch块,捕获时,不要对异常做任何事情。
答案 3 :(得分:1)
如果您进入调试器,则右键单击要继续的行并选择:设置下一个语句...但使用它需要您自担风险!
答案 4 :(得分:1)
在调试模式中单步执行代码时,您可以跳过执行引发意外异常的指令。但是如果异常已经抛出并且你没有try / catch它会传播。
答案 5 :(得分:0)
查看Exception Handling Application Block及相关文档。它包含处理应用程序异常的最佳实践,并且为您完成了大量的框架代码,即日志记录。
答案 6 :(得分:0)
如果您想知道要允许的异常。然后你可以在下面这样做
try
{
// your functionality
}
catch(Exception ex)
{
// Catch only the exceptions you need to point out
}
finally
{
//do what you want to complete with this function.
}
答案 7 :(得分:0)
我认为通过“跳过”意味着您希望程序在异常后继续工作。 当然,这可以通过在使用try-catch块时捕获异常来实现。
如果异常不是应用程序停止(例如,某些关键变量在异常后未初始化,并且您无法继续工作),建议您至少在继续之前记录它。当然,放
catch(例外e){}
源中的任何地方都不会导致稳定的应用程序;)
如果您的问题更多与调试器相关(您不希望调试器在每个抛出的异常上停止),那么在VS中有一个位置可以更改此位置:
在调试菜单中,选择例外。您将看到所有可能的异常,并且您可以在抛出或未由用户处理时调整其行为。