Maison > php教程 > php手册 > le corps du texte

PHP Cookbook读书笔记 – 第20章错误处理、故障排除和测试

WBOY
Libérer: 2016-06-06 19:40:55
original
1174 Les gens l'ont consulté

创建自己的异常 处理 类 PHP5已经提供了功能完善的异常 处理 类,为什么还要自定义异常 处理 程序呢?因为默认的异常 处理 并没有真正对不可预知的结果实现妥善地 处理 。它只是输出与常规 错误 没有区别的 错误 信息。 标准 错误 处理 程序与异常 处理 之间

创建自己的异常处理

PHP Cookbook读书笔记 – 第20章错误处理、故障排除和测试PHP5已经提供了功能完善的异常处理类,为什么还要自定义异常处理程序呢?因为默认的异常处理并没有真正对不可预知的结果实现妥善地处理。它只是输出与常规错误没有区别的错误信息。

标准错误处理程序与异常处理之间的一个主要区别就在于异常可以包含当捕获到自定义异常时自动运行的清理例程。该例程能完美地执行清理工作,并优雅的退出。

输出栈轨迹

PHP5提供了2个用于调试错误的函数debug_backtrace()和debug_print_backtrace()

读取、设置配置变量

//读取配置变量
$include_path = ini_get('include_path');

//设置配置变量
ini_set('include_path',ini_get('include_path').':/home/fezzik/php');
Copier après la connexion

对用户隐藏错误信息

在php.ini中设置

display_errors =off
log_errors     =on
error_log   = /var/log/php.error.log
Copier après la connexion

也可以在php中通过ini_set函数来设置

ini_set('display_errors', 'off');
ini_set('log_errors', 'on');
ini_set('error_log', '/var/log/php.error.log');
Copier après la connexion

错误报告

PHP中可以通过error_reporting设置显示错误的类别,在PHP5中引入了一个新的错误级别——E_STRICT用来提高能改进代码的方法,该方法是唯一不包含在E_ALL中的错误级别。因此要在开发过程中最大程度的涵盖各种错误类型,就需要将错误报告基本设置为E_ALL | E_STRICT

error_reporting(E_ALL);                // everything
error_reporting(E_ERROR | E_PARSE);    // only major problems
error_reporting(E_ALL & ~E_NOTICE);    // everything but notices
Copier après la connexion

自定义错误处理

与异常处理不同,自定义错误处理可以用来处理所有PHP报告的错误,通过下列形式实现

set_error_handler('pc_error_handler');

function pc_error_handler($errno, $error, $file, $line) {
    $message = "[ERROR][$errno][$error][$file:$line]";
    error_log($message);
}
Copier après la connexion

一些魔术常量经常用在错误处理

__FILE__,__LINE__,__FUNCTION__,__CLASS__,__METHOD__

单元测试

PHPUnit针对PHP4或PHP5版本

PHPUnit2仅针对PHP5版本

SimpleTest功能全面的单元测试框架

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal