错误处理
很多致命错误以及可恢复的致命错误, 都被转换为异常来处理, 这些异常继承自Error
类, 此类实现了 Throwable
接口.
例如: 对未定义的函数进行调用, PHP5和PHP7环境下, 都会出现致命错误.
undefine_function();
错误提示:
Output for 7.0.0 - 7.1.3
Fatal error: Uncaught Error: Call to undefined function undefine_function() in /in/4ks1u:3
Stack trace:
#0 {main}
thrown in /in/4ks1u on line 3
Process exited with code 255.
Output for 5.6.0 - 5.6.30
Fatal error: Call to undefined function undefine_function() in /in/4ks1u on line 3
Process exited with code 255.
在PHP7环境下, 这些致命的错误被转换为异常来处理, 可以通过异常来进行捕获.
(详情参见 升级指南 错误处理变更章节)
try {
undefine_function();
} catch (\Throwable $t) {
echo $t;
}
Output for hhvm-3.12.14 - 3.18.1, 7.0.0 - 7.1.3
Error: Call to undefined function undefine_function() in /in/lcUKY:4
Stack trace:
#0 {main}
这个变更一定程度上统一了异常处理, 其次对代码书写要求更加严谨.