我读过这个帖子:php: catch exception and continue execution, is it possible?
每个答案都表明try catch将继续执行脚本。这是一个没有的例子:
try{ $load = @sys_getloadavg(); }
catch (Exception $e){ echo 'Couldn\'t find load average.<br>'; return false; }
我在Windows上的xampp上运行它,这可能是它出错的原因(删除Call to undefined function sys_getloadavg()
时出现@
错误),但这不是问题所在。它可以是任何不存在,不受支持或失败的函数 - 我无法让脚本继续执行。
另一个例子是如果try中存在语法错误,请说我包含一个外部文件并将其解析为数组。这也会产生错误并停止执行。
是否有任何蛮力的方式来继续运行脚本,无论尝试失败了什么?
答案 0 :(得分:4)
与其他语言不同,PHP在异常和错误之间存在差异。这就像其他语言的编译错误。需要声明文件。您无法捕获或忽略致命错误,如功能不存在。您可以在使用之前测试存在:
if( function_exists('sys_getloadavg') {
try{ $load = @sys_getloadavg(); }
catch (Exception $e){ echo 'Couldn\'t find load average.<br>'; return false; }
}