php – 尝试,抓住并重试
有时我的代码中断,这是我无法控制的
我将如何进行以下操作? try { //do my stuff } catch { //sleep and try again } 代码不是那么多,所以这是一个功能,所以我不想做和调用另一个功能,如果我不必
你可以尝试这样的:
function exception_error_handler($errno,$errstr,$errfile,$errline ) { throw new ErrorException($errstr,$errno,$errline); } set_error_handler("exception_error_handler"); $NUM_OF_ATTEMPTS = 5; $attempts = 0; do { try { executeCode(); } catch (Exception $e) { $attempts++; sleep(1); continue; } break; } while($attempts < $NUM_OF_ATTEMPTS); function executeCode(){ echo "Hello world!"; } 在这里,我们执行一个do … while循环,以便至少执行一次代码.如果executeCode()函数遇到错误,它将抛出一个Exception,try … catch块将捕获. catch块然后将变量$尝试增加1,并调用continue继续测试下一次迭代的while条件.如果已经有五次尝试,循环将退出,脚本可以继续.如果没有错误,即catch块中的continue语句不执行,循环将中断,从而完成脚本. 注意使用从here获取的set_error_handler函数.我们这样做,以便捕获executeCode()函数中的所有错误,即使我们不自己手动抛出错误. 如果您认为您的代码可能会失败多次,那么 让脚本无限运行,直到成功,这不是一个好主意,因为循环前100次迭代中出现的错误不太可能被解决,从而导致脚本“冻结”.更重要的是,最好在错误的情况下重新评估您想要多次运行的代码,并改进它以正确处理任何出现错误的代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |