PHP中的错误处理和日志函数

debug_backtrace — 返回一个供调试使用的信息树
debug_print_backtrace — 打印一个供调试使用的信息树
error_get_last — 捕获最后的一条错误信息
error_log — 将php的错误信息发送到某处
error_reporting — 设定php的错误显示状况
restore_error_handler — 恢复set_error_handler()函数对错误处理方式的修改
restore_exception_handler — 恢复set_exception_handler()函数对异常处理方式的修改
set_error_handler — 指定一个自定义的函数来处理错误信息
set_exception_handler — 指定一个自定义的函数来处理异常信息
trigger_error — 抛出一条用户级的错误信息。
user_error — trigger_error()函数的别名

php中的错误有以下几种类型:
E_ERROR:php运行中的致命错误,会终止程序的运行。
E_WARNING:php运行中的非致命错误,不会终止程序的运行。
E_NOTICE:php运行中的重要建议,最好有所改进的地方。
E_STRICT:php运行中的细节建议,往往是为了更好的向后兼容。
E_PARSE:编译过程中解析器汇报的错误,比如你忘记了语句后面的“;”。
E_CORE_ERROR:php核心产生的致命错误。
E_CORE_WARNING:php核心产生的非致命错误。
E_COMPILE_ERROR:Zend引擎引起的编译致命错误。
E_COMPILE_WARNING:Zend引擎引起的编译非致命错误。
E_USER_ERROR:使用trigger_error()函数抛出的致命错误,会终止程序的运行。
E_USER_WARNING:使用trigger_error()函数抛出的非致命错误,不会终止程序的运行。
E_USER_NOTICE:使用trigger_error()函数抛出的并不严重的错误。
E_RECOVERABLE_ERROR:Catchable fatal error. It indicates that a probably dangerous error occured, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR.
E_ALL:在PHP 5.2之前表示除了E_STRICT之外的所有错误。6以后表示所有错误。

error_reporting()函数的作用是设定错误的显示方式,唯一的一个参数必须是一个数字,“0”表示不显示任何错误。

0 不显示任何错误信息
1 E_ERROR

2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
6143 E_ALL
2048 E_STRICT
4096 E_RECOVERABLE_ERROR
<?php
error_reporting(0);
// 不显示任何错误信息

error_reporting(E_ALL ^ E_NOTICE);
// E_ALL 的二进制为:1011111111111,E_NOTICE 的二进制为:1000,两者进行按位异或操作,得到:1011111110111 表示在E_ALL级别中排除E_NOTICE的错误信息,并显示。

?>

error_get_last()函数的作用是捕获最后一条错误信息。

<?php
echo 3/0;
print_r(error_get_last())
;


echo $a;
print_r(error_get_last())
;

?>

trigger_error()函数的作用是抛出一条用户级的错误信息。trigger_error()函数有两个参数,第一个参数表示抛出的信息内容,第二个参数是E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE 之一,表示错误信息的级别。

<?php
trigger_error("这里显示一个错误", E_USER_WARNING);
// 显示 “Warning: 这里显示一个错误 in D:\work\web\php\test.php on line 2”

?>

debug_backtrace()函数的作用是返回一个供调试使用的信息树。debug_print_backtrace()函数的作用是直接打印输出信息,而不是返回。

<?php
function test($arg)
{
  
 print_r(debug_backtrace());
}

test(6);

?>

error_log()函数的作用是将php的错误信息发送到某处,error_log()函数有四个参数,第一个参数表示错误的信息,第二个参数表示发送错误的方式:0表示本地系统的php的错误日志,1表示发送到某个邮箱地址,2表示发送到远程的服务器(仅在php3中有效),3表示追加到任意的一个本地文件。

<?php
error_log("错误信息", 3, "./test.txt");
// 在当前目录生成一个test.txt文件,并存放错误信息

?>

set_error_handler()函数的作用是设定一个回调函数来处理错误信息。 set_error_handler()函数有两个参数,第一个参数是回调函数的名称,第二个参数表示错误的级别。restore_error_handler()函数的作用是恢复先前 set_error_handler()函数定义前的错误处理方式。set_exception_handler()函数的作用是设定一个处理异常的函数,一种自定义的异常处理方式。restore_exception_handler()函数的作用是恢复 set_exception_handler()函数对异常处理方式的修改。

set_error_handler()函数指定的函数需要处理五个参数:分别表示:错误级别,错误信息,错误的文件,错误的行数,错误处的变量信息,其中最后一个参数是可选的。
set_exception_handler()函数指定的函数需要一个参数:包含错误信息的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值