PHP Cookbook读书笔记 – 第20章错误处理、故障排除和测试
2011-11-19 15:52
253 查看
创建自己的异常处理类
PHP5已经提供了功能完善的异常处理类,为什么还要自定义异常处理程序呢?因为默认的异常处理并没有真正对不可预知的结果实现妥善地处理。它只是输出与常规错误没有区别的错误信息。
标准错误处理程序与异常处理之间的一个主要区别就在于异常可以包含当捕获到自定义异常时自动运行的清理例程。该例程能完美地执行清理工作,并优雅的退出。
输出栈轨迹
PHP5提供了2个用于调试错误的函数debug_backtrace()和debug_print_backtrace()读取、设置配置变量
display_errors =off log_errors =on error_log = /var/log/php.error.log
也可以在php中通过ini_set函数来设置
error_reporting设置显示错误的类别,在PHP5中引入了一个新的错误级别——E_STRICT用来提高能改进代码的方法,该方法是唯一不包含在E_ALL中的错误级别。因此要在开发过程中最大程度的涵盖各种错误类型,就需要将错误报告基本设置为E_ALL | E_STRICTerror_reporting(E_ALL); // everything error_reporting(E_ERROR | E_PARSE); // only major problems error_reporting(E_ALL & ~E_NOTICE); // everything but notices
自定义错误处理
与异常处理不同,自定义错误处理可以用来处理所有PHP报告的错误,通过下列形式实现
set_error_handler('pc_error_handler');
function pc_error_handler($errno, $error, $file, $line) {
$message = "[ERROR][$errno][$error][$file:$line]";
error_log($message);
}
一些魔术常量经常用在错误处理中
__FILE__,__LINE__,__FUNCTION__,__CLASS__,__METHOD__
单元测试
PHPUnit针对PHP4或PHP5版本PHPUnit2仅针对PHP5版本
SimpleTest功能全面的单元测试框架
相关文章推荐
- Atitit.故障排除系列---php 程序网站数据库错误排除流程
- Atitit.故障排除系列---php 程序网站数据库错误排除流程
- Atitit.故障排除系列---php 计划网站数据库错误排除过程
- php错误处理和php异常处理机制
- PHP中的错误处理、异常处理机制详解
- PHP错误与异常处理
- centos 5.5 64 php imagick 模块错误处理记录
- php错误处理
- php的错误处理
- PHP 的错误、异常等级常量表,异常处理及错误回调函数
- PHP常用功能块_错误和异常处理 — php(32)
- 实例php故障处理
- PHP错误处理
- 服务器网络故障处理——ping丢包或不通时链路测试说明
- Linux CentOS 安装 Apache PHP MYSQL Memcached Memcache 环境配置 并且辅助安装遇见的错误处理(全文搜索
- 12-php中的错误的处理
- [推荐]爽!电脑出现错误信息的故障排除(全) @ 操作系统
- php 屏蔽错误处理
- 跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL
- php奇葩错误:htmlspecialchars处理中文丢失