错误处理

很多致命错误以及可恢复的致命错误, 都被转换为异常来处理, 这些异常继承自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}

这个变更一定程度上统一了异常处理, 其次对代码书写要求更加严谨.

results matching ""

    No results matching ""