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的异常处理的主要内容,如果未能解决你的问题,请参考以下文章

PHP 异常处理

php异常处理

PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段

PHP 异常处理

php中的错误异常处理

PHP异常处理机制