当您的程序(在调试器中)发生意外异常时。有时您只想跳过它,因为此时终止程序比继续更有害。或者您只是想继续,因为您对另一个错误/错误更感兴趣
是否有选项/compilerflag/secretswitch 可以启用此功能?
我知道应该立即解决异常,但是在某些情况下(就像我描述的那样),人们只想暂时跳过它
如果代码中没有适当的 catch 块,您将无法执行此操作,不。但是,我不记得曾经想要这样做:如果发生您的代码不知道如何真正处理的异常,您为什么要继续?那时你的状态很糟糕——继续下去会很危险。
您能否举例说明为什么要在调试器会话中继续,而不是在生产代码中?
使用 try-catch 块,并且在捕获时,不要对异常执行任何操作。
如果您进入调试器,请右键单击要继续的行并选择:设置下一条语句...但使用它需要您自担风险!
在调试模式下单步执行代码时,您可以跳过引发意外异常的指令的执行。但是如果异常已经被抛出并且你没有 try/catch 它将传播。
查看异常处理应用程序块和相关文档。它包含处理应用程序异常的最佳实践,并且为您完成了许多框架代码,即日志记录。
如果你想知道你想允许什么例外。那么您可以在下面执行此操作
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.
}
我假设通过“跳过”你的意思是你希望你的程序在异常之后继续工作。当然,这可以通过在使用 try-catch 块时捕获异常来实现。
如果异常不是应用程序停止器(例如,某些关键变量在异常后没有初始化,并且您无法继续工作),建议您至少在继续之前记录它。当然,放
捕获(异常 e){ }
您源代码中的任何地方都不会导致稳定的应用程序;)
如果您的问题更多与调试器相关(您不希望调试器在每次抛出异常时都停止),那么在 VS 中有一个地方可以更改:
在“调试”菜单中,选择“异常” 。您将看到所有可能的异常,并且您可以在用户抛出或不处理它们时调整它们的行为。