php 错误处理

一、错误的种类

查看源码复制到剪切板打印帮助
; E_ALL //-所有的错误和警告,(不包含E_STRICT).
; E_ERROR //-致命的运行时错误
; E_RECOVERABLE_ERROR //- 几乎致命的运行时错误
; E_WARNING //- 运行时的警告(非致命错误)
; E_PARSE //-编译时解析错误
; E_NOTICE //- 运行时的提示,这些提示常常是代码中的bug引起的。
; E_STRICT //- 运行时提示,能够给于PHP建议,以改善你的代码。
; E_CORE_ERROR //- PHP 初始化启动过程中的致命错误。
; E_CORE_WARNING //- PHP 初始化启动过程中的非致命错误。
; E_COMPILE_ERROR //- 致命的编译错误。
; E_COMPILE_WARNING //– 编译错误(非致命的错误)。
; E_USER_ERROR //- 用户错误信息。
; E_USER_WARNING //- 用户警告信息。
; E_USER_NOTICE //-用户提示信息。;
二、php.ini 配置错误显示与否

查看源码复制到剪切板打印帮助
//1、错误消息输出到用户端(调试代码时候,打开这项更方便)
display_errors = ON

//2、错误消息将不会输出到用户端(最终发布给用户时记得改成off)
display_errors = OFF
三、php.ini 错误输出配置推荐

查看源码复制到剪切板打印帮助
//1、表示输出所有的信息。
error_reporting = E_ALL

//2、表示输出所有的错误,除了提示。
error_reporting = E_ALL & ~E_NOTICE

//3、表示输出所有的 ERROR 信息。
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
四、php 中调整整错误级别

1、错误级别列表

值 错误代码
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
2047 E_ALL
2048 E_STRICT
4096 E_RECOVERABLE_ERROR
2、使用 error_reporting ( [int level] ) 调整错误级别

例子

查看源码复制到剪切板打印帮助
error_reporting(0); //关闭所有错误显示

error_reporting(E_ERROR | E_WARNING | E_PARSE);

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

error_reporting(E_ALL ^ E_NOTICE); //php.ini错误值。

error_reporting(E_ALL); //显示所有错误信息。
五、自定义错误函数处理

1、使用 set_error_handler()函数向系统声明错误处理函数

2、使用 trigger_error()函数,可以触发一个 error

例子

查看源码复制到剪切板打印帮助
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
switch ($errno) {
case E_USER_ERROR:
echo "<b>My ERROR</b> [$errno] $errstr\n";
echo " Fatal error in line $errline of file $errfile";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")\n";
echo "Aborting...\n";
exit(1);
break;
case E_USER_WARNING:
echo "<b>My WARNING</b> [$errno] $errstr\n";
break;
case E_USER_NOTICE:
echo "<b>My NOTICE</b> [$errno] $errstr\n";
break;
default:
echo "Unknown error type: [$errno] $errstr\n";
break;
}
}

//定义错误处理函数.
set_error_handler("myErrorHandler");

//假设出现了负数的年龄,这明显是错误的。
$age = -100;

if ($age < 0) {
//触发错误;
trigger_error("age you input must >= 0", E_USER_ERROR);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值