是否有办法允许在抛出异常后执行坏代码块?
目前,我的代码有一个连续运行的while循环。此while循环内的代码有时会引发向量超出范围错误。我一直无法找到这个特殊异常的原因,但最终,它并不重要,因为while循环中的代码一遍又一遍地执行相同的操作,并且下一次迭代不依赖于之前的迭代无论如何。
这个,在while循环中的代码崩溃后,我希望它从while语句的顶部重新开始。
有没有办法在C ++中实现这一目标?在这种情况下,try / catch似乎不起作用。
其他信息: 我希望只是在while循环中获取代码,使其成为自己的可执行文件,并将while循环放入bash脚本中,但是每个迭代需要的一些数据保持静态并且重新加载需要太多时间每次这样的数据,所以我被迫在C ++中做无限循环
答案 0 :(得分:12)
你只需要在while循环中捕获异常:
while(true)
{
try
{
// your code
}
catch (Exception e) { /* Please, at least do some logging or other error handling here*/ }
}
答案 1 :(得分:1)
您应该做的第一件事是 debug 代码,因为您可以在调试器中运行代码并诊断问题所在。将问题推到地毯下不会让它消失,程序仍然会出错。
如果另一方面,问题出在真正例外但可行的事情上(考虑打开文件,通过网络发送数据包,任何可能发生故障的事情,但不是预期的对于 - 应该永远不会发生的东西 - ,try/catch
方法应该有效。
答案 2 :(得分:0)
如果您可以发布一段代码,我们都可以为您提供更多帮助。 但一般来说,你应该总是有一些错误处理,无论是try {} catch {}还是只检查变量,如:
while(true)
{
if(flag == "Error")
{
//error handle
}
else
{
//continue with code execution
}
}
希望你能解决这个问题!