关联文件:myErrorHandler.php (上一篇) 先测试通知级别的错误的自定义处理: testErrorHandler.php <?php require_once 'myErrorHandler.php'; error_reporting(-1); set_error_handler(array('myErrorHandler', 'deal')); //通知级别错误 echo $notice; 运行,在 D:\practise\php\From\notice 生成 noticeLo…
可以使用自定义异常处理器来处理所有未捕获的异常(没有用 try/catch 捕获的异常). set_exception_handler():设置一个用户定义的异常处理函数,当一个未捕获的异常发生时所调用函数的名称(回调函数),该函数必须在调用 set_exception_handler() 之前已经定义.该处理函数需要接受一个参数,该参数是一个抛出的异常对象 [例] <?php header('content-type:text/html; charset=utf-8'); header('co…
① 异常的概念:异常和错误的区别 PHP 部分借鉴了 C++ 和 JAVA 中的异常处理机制.PHP 中的异常是指 程序运行和预期不太一致,与错误是两个不同的概念. ② 异常的语法结构 [例1] <?php header('content-type:text/html; charset=utf-8'); /* try{ 要测试的代码段; throw new Exception('异常信息'); }catch(Exception $e){ echo $e->getMessage(); } */…
针对不同的异常,进行不同的处理,可以通过自定义异常类记录特定的异常信息来处理不同类型的异常.自定义异常类通过继承基类(Exception),对基类进行扩展. 自定义异常类 <?php header('content-type:text/html; charset=utf-8'); /* 自定义异常类 */ class MyException extends Exception{ //重写父类构造函数 public function __contruct($message, $code = 0){…
在发生错误时,将用户重定向到另一个页面. <?php header('content-type:text/html; charset=utf-8'); class ExceptionRedirectHandler{ protected $_exception; protected $redirect = '404.html'; protected $_logFile = 'D:/practise/php/Error/LogException3.log'; //构造函数中得到异常对象 public…
有两种方式可以在 PHP 中以异常的方式处理错误: ① PHP 内置的 ErrorException类(也是 Exception 类的子类) <?php function exception_error_handler($errno, $errstr, $errfile, $errline){ throw new ErrorException($errstr, 0, $errno, $errfile, $errline); } set_error_handler('exception_error…
当发生异常时,把异常信息记录到日志文件中: <?php header('content-type:text/html; charset=utf-8'); class LogException extends Exception{ public function __construct($message = null, $code = 0){ parent::__construct($message, $code); error_log($this->getMessage().PHP_EOL,…
[记录错误(生产环境)] php.ini: ① 开启 / 关闭 错误日志功能 log_errors = On ② 设置 log_errors 的最大字节数 log_errors_max_len = 其他: 选项 描述 log_errors 设置是否将错误信息记录到日志或者 error_log 中 error_log 设置脚本错误将记录到的文件 log_errors_max_len 设置 log_errors 的最大字节数 ignore_repeated_errors 是否忽略重复的错误信息 ig…
[错误抑制符@] 除了 php.ini 中 error_reporting 和 display_errors 的设置.error_reporting() 函数.ini_set() 函数 外,还可以使用错误抑制符@ 屏蔽错误的输出. @ 加在任何会产生错误的表达式之前. [通过 trigger_error 触发 PHP 错误] 触发错误的功能不只限于 PHP 解析器,还可以通过 trigger_error() 函数触发错误,类似于异常中抛出的异常一样,抛出了一个错误,可以协助调试代码. [例] <…
[常见的错误类型] ① 语法错误 [例1]程序语句结尾少了';' <?php $username = "dee" //少了分号; echo $username; 输出: ( ! ) Parse error: syntax error, unexpected T_ECHO in D:\practise\php\Error\error1.php on line 3 Parse error:解析错误 syntax error:语法错误 [PHP 中的错误级别]16 种 E_ERROR…