有时我的代码会崩溃,这是我无法控制的
我将如何执行以下操作?
try {
//do my stuff
}
catch {
//sleep and try again
}
代码并不多,所以都是一个函数,所以如果不需要的话,我不想创建和调用另一个函数
原文由 user3869692 发布,翻译遵循 CC BY-SA 4.0 许可协议
有时我的代码会崩溃,这是我无法控制的
我将如何执行以下操作?
try {
//do my stuff
}
catch {
//sleep and try again
}
代码并不多,所以都是一个函数,所以如果不需要的话,我不想创建和调用另一个函数
原文由 user3869692 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答3.1k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
5 回答1.1k 阅读
1 回答1.3k 阅读✓ 已解决
2 回答1.2k 阅读
1 回答1.2k 阅读
你可以尝试这样的事情:
在这里,我们执行
do...while
循环,以便代码至少执行一次。如果executeCode()
函数遇到错误,它将抛出Exception
try...catch
块将捕获。 Thecatch
block will then increment the variable$attempt
by one and callcontinue
to test thewhile
condition for the next iteration.如果已经有五次尝试,循环将退出并且脚本可以继续。如果没有错误,即来自catch
块的continue
语句没有被执行,循环将break
脚本。注意
set_error_handler
取自 此处 的函数的使用。我们这样做是为了捕获executeCode()
函数中的所有错误,即使我们自己不手动抛出错误也是如此。如果您认为您的代码可能会多次失败,那么
sleep()
函数可能在continue
语句之前是有益的。 “放慢”可能的无限循环将有助于降低您的CPU Usage
。让脚本无限运行直到成功不是一个好主意,因为循环的前 100 次迭代中出现的错误不太可能得到解决,从而导致脚本“冻结”。通常情况下,最好重新评估您希望在出现错误时多次运行的代码,并改进它以正确处理出现的任何错误。