php的异常处理
Posted 张葵个人博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的异常处理相关的知识,希望对你有一定的参考价值。
在php中,虽然有些变量没有定义,直接使用不会导致程序奔溃,但是这也是一个错误,可以由程序员自定义错误异常处理信息进行处理。
trigger_error:作用是产生一个用户级别的error/warning/notice 错误信息。
参数:第一个参数传递的是提示的错误信息,第二个参数是错误类型。
返回值:一个布尔值。
用途:该函数在你运行出现异常时,需要产生一个特定的响应时非常有用
register_shutdown_function 这个函数是用来当php程序执行完毕,或者是提前退出以及发生致命性错误的时候会触发回调函数
function callBack($param='error'){
echo "这里是回调函数\n";
}
register_shutdown_function('callBack','warning');
echo "这里是正在执行" . PHP_EOL;
//结果:这里是正在执行
//这里是回调函数
function callBack($param='error'){
echo "这里是回调函数\n";
}
register_shutdown_function('callBack','warning');
echo "这里是before" . PHP_EOL;
exit();
echo "这是after" . PHP_EOL;
//结果:这里是before
//这里是回调函数
function callBack($param='error'){
echo "这里是回调函数\n";
}
register_shutdown_function('callBack','warning');
echo "这里是before" . PHP_EOL;
new Student();
echo "这是after" . PHP_EOL;
//这里是before
//PHP Fatal error: Uncaught Error: Class 'Student' not found in /home/wwwroot/swoole_study/test/register_shutdown_function.php:16
//Stack trace:
//#0 {main}
// thrown in /home/wwwroot/swoole_study/test/register_shutdown_function.php on line 16
//这里是回调函数
set_exception_handler函数
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(), "\n";
}
set_exception_handler('exception_handler');
throw new Exception('错误信息');
echo "Not Executed\n";
//Uncaught exception: 错误信息
php7中可以使用try和catch来捕获致命的错误了,使用throwable类
使用set_exception_handler是用来捕获异常的,是不能捕获致命性错误的。register_shutdown_function 是用来捕获程序在执行完毕或者使用die/exit以及发生致命错误的时候的时候使用。现在在php7中引入的Throwable类不仅仅可以捕获异常,也能捕获error。
以上是关于php的异常处理的主要内容,如果未能解决你的问题,请参考以下文章
PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段