如何防止try-catch错误停止执行

时间:2014-03-07 16:57:16

标签: php exception try-catch

我读过这个帖子: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中存在语法错误,请说我包含一个外部文件并将其解析为数组。这也会产生错误并停止执行。

是否有任何蛮力的方式来继续运行脚本,无论尝试失败了什么?

1 个答案:

答案 0 :(得分:4)

与其他语言不同,PHP在异常和错误之间存在差异。这就像其他语言的编译错误。需要声明文件。您无法捕获或忽略致命错误,如功能不存在。您可以在使用之前测试存在:

 if( function_exists('sys_getloadavg') {
       try{ $load = @sys_getloadavg(); }
           catch (Exception $e){ echo 'Couldn\'t find load average.<br>'; return false; }
 }