php函数: set_error_handler
<?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的更多相关文章
- PHP错误处理函数set_error_handler()的用法
定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...
- PHP 错误与异常 笔记与总结(8)自定义错误处理函数 set_error_handler()
通过 Set_error_handler() 函数设置用户自定义的错误处理函数. 步骤: ① 创建错误处理函数 ② 设置不同级别调用函数 ③ Set_error_handler() 函数制定接管错误处 ...
- PHP错误处理函数set_error_handler()的用法[转载]
定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...
- PHP set_error_handler()函数的使用【转载】
我们写程序,难免会有问题(是经常会遇到问题 ),而PHP遇到错误时,就会给出出错脚本的位置.行数和原因.有很多人说,这并没有什么大不了.确实,在调试程序阶段,这确实是没啥的,而且我认为给出错误路径是必 ...
- PHP set_error_handler()函数的使用
我们写程序,难免会有问题(是经常会遇到问题 ),而PHP遇到错误时,就会给出出错脚本的位置.行数和原因.有很多人说,这并没有什么大不了.确实,在调试程序阶段,这确实是没啥的,而且我认为给出错误路径是必 ...
- PHP异常处理函数set_exception_handler()的用法
定义和用法 set_exception_handler() 函数设置用户自定义的异常处理函数. 该函数用于创建运行时期间的用户自己的异常处理方法. 该函数会返回旧的异常处理程序,若失败,则返回 nul ...
- register_shutdown_function 函数详解
设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...
- set_error_handler
set_error_handler这个函数的作用是为了防止错误路径泄露 何为错误路径泄露呢? 我们写程序,难免会有问题,而PHP遇到错误时,就会给出出错脚本的位置.行数和原因 有很多人说,这并没有什么 ...
- register_shutdown_function函数详解
设定错误和异常处理三函数 register_shutdown_function(array(‘Debug’,'fatalError’)); //定义PHP程序执行完成后执行的函数 set_error_ ...
随机推荐
- 使用 Jmeter 做 Web 接口测试-详解
接口测试概述 定义 WIKI定义:接口测试作为集成测 试的一部分,通过直接控制API来判断系统的功能性,可靠性,性能与安全性.API测试是没有界面的,执行在通讯 层.API 测试在自动化测试中有着重要 ...
- commons-lang3-StringUtils
字符串工具类 abbreviate(String str, int maxWidth) 返回一个指定长度加省略号的字符串,maxWidth必须大于3 StringUtils.abbreviate( ...
- eclipse 国际化 $NON-NLS-1$ 含义
一.$NON-NLS-1$ 含义 Eclipse 如果每行代码里有这个字符串:$NON-NLS-1$ 表示:这一行的第一个字符串是不需要国际化的.同理$NON-NLS-2$,$NON-NLS-3$.. ...
- WebStorm添加多个项目到当前工程目录
File-> Settings -> Directories -> Add Content Root,选择你要加入的Project 点击OK -> Apply -> OK ...
- ios编程规范
允许使用较长的描述尽量不要使用缩写,而是将完整的意思写出来.源于代码的维护可能会被不同文化背景的programmer阅读 适当的命名前缀,比如给变量,协议等,不要给方法加前缀 方法命名规则一般以小写字 ...
- 如何让你的网页加载时间降低到 1s 内
当初分析了定宽高值和定宽高比这两种常见的图片延迟加载场景,也介绍了他们的应对方案,还做了一点技术选型的工作. 经过一段时间的项目实践,在先前方案的基础上又做了很多深入的优化工作.最终将好奇心日报的网页 ...
- dogpile搜索引擎
有发现了一个新的搜索引擎——dogpile,结果还不错.据说是综合了多个搜索引擎的结果,展现了最终的搜索结果. 从百科上介绍说,这是一个[元搜索引擎].不懂,继续百科之,如下: 搜索引擎分为全文搜索引 ...
- ofstream的使用方法
ofstream的使用方法ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C 中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包 ...
- Java排序算法(三):直接插入排序
[基本思想] 关键:在前面已经排好序的序列中找到合适的插入位置 步骤: 1. 从第一个元素開始,该元素能够觉得已经排好序. 2. 取出下一个元素.在已经排好序的元素序列中从后往前扫描进行比較. 3. ...
- 手把手教你画AndroidK线分时图及指标
先废话一下:来到公司之前.项目是由外包公司做的,面试初,没有接触过分时图k线这块,认为好难,我能搞定不.可是一段时间之后,发现之前做的那是一片稀烂,可是这货是主功能啊.迟早的自己操刀,痛下决心,开搞, ...