<?php
// $errno, $errstr, $errfile, $errline , 系统自动生成这四个变量的值(如果存在!)
function error_catcher($errno, $errstr, $errfile, $errline){
    if(!(error_reporting() && $errno)){
        return;
    }
     echo "Custom error: [$errno] $errstr<br />";
     echo " Error on line $errline in $errfile<br />";
     die();
}
set_error_handler("error_catcher");
$test = 2;
if($test > 1){
    trigger_error("you must be 1 or below");
    error_log("you must be 1 or below", 1, "dest_email_addr@qq.com", "From:m5161@qq.com");
}
//end of file c:\wamp\www\index.php
?>

  

--------------------------------------------------------------------

set_error_handler(error_function, error_types) 
    error_function             (必需)错误发生时运行的函数 
    error_types                 (可选)错误类型, 默认是 E_ALL 
    如果必要, 自定义的错误处理程序必须终止脚本, 即 die() 函数.

bool trigger_error(error_message, error_types) 
    error_message        (必需)错误消息 
    error_types              (可选)错误类型: E_USER_WARNING  /  E_USER_NOTICE  /  E_USER_ERROR 
    如果和 set_error_handler() 一起使用, 则该函数的 error_message 将会替代 $errstr .

bool error_log(error_info, type, dest, header) 
    error_info      错误信息 
    type              0  -默认,根据 php.ini 的 error_log 配置,错误消息被发送到日志系统或文件 
                         1  -错误信息被发送到 dest 指定的邮件地址,只有该类型才需要使用 header 参数 
                         3  -错误发送到文件目标字符串 
    dest              (可选)规定向何处发送错误消息 
    header         (可选)只有 type 为 1 时才使用. 规定附加的头部, 比如 From , Cc , Bcc , 由 CRLF(\r\n)分隔 
以上三个函数很重要, 通常在错误处理程序中, 组合使用!!

error_reporting 
    //禁用错误报告 
    error_reporting(0); 
    //报告运行时错误 
    error_reporting(E_ERROR | E_WARNING | E_PARSE); 
    //报告所有错误 
    error_reporting(E_ALL);

error_get_last() 
    例: 
        echo $test; 
        print_r(error_get_last());

restore_error_handler()    恢复之前的错误处理程序。 
    例:在上面的那个例子最末行加上下面这条语句 
        if($test > 1) 
        trigger_error("you must be 1 or below !!!!!!");

其他函数: 
    debug_backtrace()                     生成 backtrace。 
    debug_print_backtrace()               输出 backtrace。        
    restore_exception_handler()           恢复之前的异常处理程序。    
    set_exception_handler()               设置用户自定义的异常处理函数。

;

php函数: set_error_handler的更多相关文章

  1. PHP错误处理函数set_error_handler()的用法

    定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...

  2. PHP 错误与异常 笔记与总结(8)自定义错误处理函数 set_error_handler()

    通过 Set_error_handler() 函数设置用户自定义的错误处理函数. 步骤: ① 创建错误处理函数 ② 设置不同级别调用函数 ③ Set_error_handler() 函数制定接管错误处 ...

  3. PHP错误处理函数set_error_handler()的用法[转载]

    定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...

  4. PHP set_error_handler()函数的使用【转载】

    我们写程序,难免会有问题(是经常会遇到问题 ),而PHP遇到错误时,就会给出出错脚本的位置.行数和原因.有很多人说,这并没有什么大不了.确实,在调试程序阶段,这确实是没啥的,而且我认为给出错误路径是必 ...

  5. PHP set_error_handler()函数的使用

    我们写程序,难免会有问题(是经常会遇到问题 ),而PHP遇到错误时,就会给出出错脚本的位置.行数和原因.有很多人说,这并没有什么大不了.确实,在调试程序阶段,这确实是没啥的,而且我认为给出错误路径是必 ...

  6. PHP异常处理函数set_exception_handler()的用法

    定义和用法 set_exception_handler() 函数设置用户自定义的异常处理函数. 该函数用于创建运行时期间的用户自己的异常处理方法. 该函数会返回旧的异常处理程序,若失败,则返回 nul ...

  7. register_shutdown_function 函数详解

    设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...

  8. set_error_handler

    set_error_handler这个函数的作用是为了防止错误路径泄露 何为错误路径泄露呢? 我们写程序,难免会有问题,而PHP遇到错误时,就会给出出错脚本的位置.行数和原因 有很多人说,这并没有什么 ...

  9. register_shutdown_function函数详解

    设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...

随机推荐

  1. [CF665F]Four Divisors

    题目大意: 给定$n(n\leq10^{11})$,求$\displaystyle\sum_{i=1}^n[\tau(i)=4]$. 思路: 设$p,q$为不相等的质数,则满足$\tau(i)=4$的 ...

  2. DEDECMS后台模板修改

    一.后台登录页 dede/templets/login.htm去掉底部的代码(类名为login-power.dede-iframe这两个div都要去掉)其中“login.php?dopost=show ...

  3. OpenSceneGraph 3.2 版本修改点

    OpenSceneGraph-3.2.0稳定版本发布了,改善了对iOS.Android的支持,支持OpenGL的更多新特性.可以通过 下载版块来进行下载. OpenSceneGraph 3.2 发布. ...

  4. GLSL逐顶点光照[转]

    转载:http://blog.csdn.net/hgl868/article/details/7872350 引言 在OpenGL中有三种类型的光:方向光(directional).点光(point) ...

  5. 【2048小游戏】——原生js爬坑之遍历算法显示二维数组内容

    引言:做2048小游戏会将横纵方向的数字内容,存储在一个二维数组中,要将这个二维数组中的内容显示在页面上,就一定要用遍历算法来实现了. 一.二维数组存储    首先考虑用二维数组存储所有行数,列数   ...

  6. Xcode中的变量模板(variable template)的使用方法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 你可能常常会写一些小的代码片段,里面自然少不了一些关键的变量. ...

  7. 【ActionScript】Flash与网页的交互,ActionScript与JavaScript的交互

    Flash是可以轻松与网页交互数据的,不然为何Flash会有这么大的生命力呢?仅仅是这样编程比較麻烦而已,又要调试Flash,然后又要放到server上调试. 只是这种方式可以收到非常好的效果.Fla ...

  8. 奇怪!post提交 地址栏参数竟然可见

    转:    http://blog.csdn.net/yuebinghaoyuan/article/details/7727802 在做项目中,form标签中method="post&quo ...

  9. winform程序公布后,client下载报错“您的 Web 浏览器设置不同意执行未签名的应用程序”

    如题 在winserver2008服务器上操作会报错.解决的方法: IE→Internet选项→安全→可信网站,加入信任公布的IP地址

  10. JAVA Eclipse 出现 load id=gralloc != hmi-id=gralloc怎么办

    一般是应用程序权限导致的,在Manifest.xml文件中,targetSdkVersion设置不正确,你可以直接删掉这个信息