首页> 基础笔记 >PHP基础学习 >常用功能块 常用功能块

PHP自定义错误处理实现方法

作者:小萝卜 2019-08-20 浏览 988

简介自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按自己定义的格式打印错误报告,或改变错误报告打印的位置,以下几种情况可以考虑自定义错误处理。

自定义错误报告的处理方式,可以完全绕过标准的PHP错误处理函数,这样就可以按自己定义的格式打印错误报告,或改变错误报告打印的位置,以下几种情况可以考虑自定义错误处理。

可以记下错误的信息,及时发现一些生产环境出现的问题

可以屏蔽错误。

可以控制错误的输出。

可以作为调试工具。

使用set_error_handler()函数来设置用户自定义错误处理。


代码:
<?php
    /**
        定义Error_Handler函数,
       作为set_error_handler()的第一个参数"回调"
        @param  int     $error_level  错误级别
        @param string $error_message  错误信息
        @param  string  $file            错误所在文件
        @param  int     $lin               错误所在行数
    */
    function error_handler($error_level,
	 $error_message, $file, $line) {
          $EXIT = FALSE;
          switch( $error_level ) {
              //提醒级别
              case E_NOTICE:
              case E_USER_NOTICE :
                   $error_type = 'Notice'; break;
     	
               //警告级别
              case E_WARNING:
              case E_USER_WARNING:
                   $error_type = 'Warning'; break;
                //错误级别
               case E_ERROR:
               case E_USER_ERROR:
                      $error_type = 'Fatal Error';
                      $EXIT = TRUE; break;
               
               //其他末知错误
               default:
                      $error_type = 'Unknown';
                      $EXIT = TRUE; break;
        }
        //直接打印错误信息,也可以写文件或数据库
        printf ("<font color='#FF0000'><b>%s</b></font>: %s in <b>%s</b> on line <b>%d</b><br>\n", $error_type, $error_message, $file, $line);
        
        //若出现错误则跳转到友好错误提示页面
        if(TRUE === $EXIT) {
           echo '<script>location="er.html" </script>';
        }
 }

    error_reporting(0); //屏蔽程序中的错误
    
    set_error_handler('error_handler'); //这个才是关键点,把错误的处理交给error_handler()
    
    echo $novar; //使用末定义的变量要报 notice 的
    
    echo 3/0;  //除以0要报警告的
    
    trigger_error('Trigger a fatal error', E_USER_ERROR); //自定义一个错误
?>


 
 

 

很赞哦! (0)

文章评论

    高端网站建设