Back

Exception

2016-02-28 更新

PHP错误级别&配置

display_errors = ON/OFF ;开启关闭错误报告

定义和用法:

error_reporting(E_ALL) 设置 PHP 的报错级别并返回当前级别。

或php.ini:error_reporting = E_WARNING & E_NOTICE

函数语法:

error_reporting(report_level)

如果参数 level 未指定,当前报错级别将被返回。下面几项是 level 可能的值:

可以明显的看到,上面是二进制的值。所以,级别之间支持使用 & || ~等逻辑运算!


自定义PHP的错误报告处理方式

set_error_handler(callback[,error_types = E_ALL | E_STRICT]);

function callback($error_type,$error_message,$error_file,$error_line)

设置一个用户的函数来处理脚本中出现的错误。不再是系统定义的直接输出,影响界面。

此时,php.ini的错误级别error_reporting不再有效,而是由callback函数控制。

set_exception_handler(callback)

设置默认的异常处理程序,用于没有用try/catch块来捕获的异常。在callback调用后异常会中止。

错误日志(文件)

错误配置:

日志文件位置:

  1. 系统日志

  2. 服务器日志(每个虚拟机可能配置不同)

  3. 自定义日志文件

  4. PHP异常(Exception)

    结构:try{} catch(Exception $e){echo $e->getMessage();}

    throw new Exception(“异常");

    和Java基本一致,没啥说的。但是如何让系统错误,自动异常抛出?

    如下图所示,使用set_error_handler:

    此时,就可以通过第二点:自定义错误的方式,判断不同的error,抛出不同的Exception。

    输出:

    可见,Warning被handler处理,抛出的Exception,被try catch结构处理了。