PHP Cookbook读书笔记 – 第20章错误处理、故障排除和测试
创建自己的异常 处理 类 PHP5已经提供了功能完善的异常 处理 类,为什么还要自定义异常 处理 程序呢?因为默认的异常 处理 并没有真正对不可预知的结果实现妥善地 处理 。它只是输出与常规 错误 没有区别的 错误 信息。 标准 错误 处理 程序与异常 处理 之间
创建自己的异常处理类
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');
对用户隐藏错误信息
在php.ini中设置
display_errors =off log_errors =on error_log = /var/log/php.error.log
也可以在php中通过ini_set函数来设置
ini_set('display_errors', 'off'); ini_set('log_errors', 'on'); ini_set('error_log', '/var/log/php.error.log');
错误报告
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
自定义错误处理
与异常处理不同,自定义错误处理可以用来处理所有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功能全面的单元测试框架

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

CakePHP 是 PHP 的開源框架。它旨在使應用程式的開發、部署和維護變得更加容易。 CakePHP 基於類似 MVC 的架構,功能強大且易於掌握。模型、視圖和控制器 gu
