码迷,mamicode.com
首页 > 其他好文 > 详细

自定义错误处理器

时间:2018-03-07 15:02:23      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:gpo   实参   完全   文件名   开发者   机器   handle   一个   led   

什么叫错误处理器?

  就是一旦发生错误,用来处理该错误的一种“机器” --其实就是一个函数。

自定义错误处理,就是指:

  让系统不要去处理错误,而完全由我们(开发者)来对错误处理:显示和记录。

做法,其实很简单,就两步:

第一步:

  设定要用于处理错误的函数名!

  set_error_handler("f1");

第二步:

  去定义该函数

  function f1()

  {

    //这里可以任意写代码:自然正常是去显示错误报告和记录错误日志。

  }

代码: 

<?php
//第一步:定义要作为错误处理的函数名
set_error_handler("my_error_handler");

//第二步:定义该函数
//该函数需要定义4个形象,分别代表:
//$errCode :代表错误代号(级别)
//$errMsg:  代表错误信息内容
//$errFile: 代表发生错误的文件名
//$errLine: 代表发生错误的行号
//注意,该函数我们不要在程序中调用,而是,一发生错误就会被自动调用
//而且会传入该4个实参数据
function my_error_handler($errCode,$errMsg,$errFile,$errLine)
{
    $str = "";
    $str .= "<p><font color=‘red‘>大事不好,发生错误:</font>";
    $str .= "<br />错误代号为:".$errCode;
    $str .= "<br />错误内容为:".$errMsg;
    $str .= "<br />错误文件为:".$errFile;
    $str .= "<br />错误行号为:".$errLine;
    $str .= "<br />发生时间为:".date("Y-d-m H:i:s");
    $str .= "</p>";
    echo $str;//输出该“构建”的错误完整处理结果
    //也可以将该内容“写入”到某个文件中去,也就是所谓记录错误日志!
}

案例一:

echo $v1;   //使用不存在的变量

运行结果:

  大事不好,发生错误:
  错误代号为:8
  错误内容为:Undefined variable: v1
  错误文件为:F:\demo\wuxianji\index.php
  错误行号为:28
  发生时间为:2018-07-03 06:23:56

案例二:

echo C1;    //使用不存在的常量

运行结果:

  大事不好,发生错误:
  错误代号为:8
  错误内容为:Use of undefined constant C1 - assumed ‘C1‘
  错误文件为:F:\demo\wuxianji\index.php
  错误行号为:28
  发生时间为:2018-07-03 06:28:27

  C1

案例三:

include ‘./no_this_file.php‘; //加载没有的文件

运行结果:

  大事不好,发生错误:
  错误代号为:2
  错误内容为:include(./no_this_file.php): failed to open stream: No such file or directory
  错误文件为:F:\demo\wuxianji\index.php
  错误行号为:28
  发生时间为:2018-07-03 06:30:05

  大事不好,发生错误:
  错误代号为:2
  错误内容为:include(): Failed opening ‘./no_this_file.php‘ for inclusion (include_path=‘E:\xampp\php\PEAR‘)
  错误文件为:F:\demo\wuxianji\index.php
  错误行号为:28
  发生时间为:2018-07-03 06:30:05

 

自定义错误处理器

标签:gpo   实参   完全   文件名   开发者   机器   handle   一个   led   

原文地址:https://www.cnblogs.com/xlju/p/8521862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!