`

PHP5的异常处理机制[4]--PHP5之前的错误处理--使用PEAR处理错误

 
阅读更多

(三)使用PEAR处理错误

你也可以使用PEAR来处理错误。当发生错误,将返回一个 Pear_Error对象。后面的代码通过一个静态方法PEAR::isError()来检验这个对象。如果错误确实发生了,那么返回的Pear_Error对象将提供你需要的所有相关信息:

PEAR::getMessage() - the error message 出错信息
PEAR::getType() - the Pear_Error subtype 错误类型
PEAR::getUserInfo() - additional information about the error or its context 附加信息
PEAR::getCode() - the error code (if any) 出错代码

这里我们修改了getCommandObject()方法,使之返回一个Pear_Error对象。

index_pear.php

Pear_Error既是出错标志又包含有错误的相关具体信息,这对于客户代码来说是很好用的。

尽管返回一个对象值可以让你灵活对程序中的问题作出反映,它也有“污染接口”的副作用。因为现在 getCommandObject() 方法 的 出口有两个,而且都是对象,有时可能产生混淆。

PHP不允许你指明一个类方法或函数应当返回的值的类型,尽管这样比较方便。 getCommandObject()方法返回的即是Command对象或者一个Pear_Error对象。如果你想得到一定的类型的返回值,你必须每次都检验值的类型。一段谨慎的代码会充满复杂的检验条件语句,如果每种类型都检验的话。

以下是一段不考虑错误检验的 PEAR::DB客户代码

程序的可读性很好,操作一目了然--我们选择一个数据库,新建一个数据表然后插入一行纪录,再取回数据,然后丢弃掉数据表。

再看看以下使用错误判断之后:

很明显加上错误检验后,代码显得冗长复杂。其实以上代码比起实际项目中的代码还要简单一些,但已经足以说明错误检验的复杂程度。

分享到:
评论

相关推荐

    《PHP5权威编程》

    第7章 错误处理 第8章 PHP 5中处理XML 第9章 主流扩展 第10章 使用PEAR 第11章 重要的PEAR包 第12章 创建PEAR的组件 第13章 迁移 第14章 性能 第15章 一个编写PHP扩展的介绍 第16章 PHP Shell 脚本编程 附录A PEAR和...

    PHP5权威编程 英文版

    第7章 错误处理 191 第8章 PHP 5中处理XML 219 第9章 主流扩展 261 第10章 使用PEAR .. 345 第11章 重要的PEAR包 383 第12章 创建PEAR的组件 403 第13章 迁移 433 第14章 性能 449 第15章 一个编写PHP扩展的...

    php权威编程

    PEAR创始人Stig Saether Bakken,PHP核心贡献者Derick Rethans三大高手合力而作:本书几乎囊括了PHP 5所有的新特性,包括PHP 5所有的新功能,PHP 5的面向对象编程方法和设计模式,以及PHP 5的新的数据库连接处理、...

    PHP5 权威编程!

    PEAR创始人Stig Saether Bakken,PHP核心贡献者Derick Rethans三大高手合力而作:本书几乎囊括了PHP 5所有的新特性,包括PHP 5所有的新功能,PHP 5的面向对象编程方法和设计模式,以及PHP 5的新的数据库连接处理、...

    PHP和MySQL Web开发第4版pdf以及源码

    7.5 异常和PHP的其他错误处理机制 7.6 进一步学习 7.7 下一章 第二篇 使用MySQL 第8章 设计Web数据库 8.1 关系数据库的概念 8.1.1 表格 8.1.2 列 8.1.3 行 8.1.4 值 8.1.5 键 8.1.6 模式 8.1.7 关系 ...

    PHP程序设计第2版

    第8章 错误和异常处理 第9章 字符串和正则表达式 第10章 处理文件和操作系统 第11章 PEAR 第12章 日期和时间 第13章 PHP 5.1 第14章 表单和导航提示 第15章 处理文件上传 第16章 网络 第17章 PHP和LDAP 第18章 会话...

    PHP和MySQL WEB开发(第4版)

    7.5 异常和PHP的其他错误处理机制 7.6 进一步学习 7.7 下一章 第二篇 使用MySQL 第8章 设计Web数据库 8.1 关系数据库的概念 8.1.1 表格 8.1.2 列 8.1.3 行 8.1.4 值 8.1.5 键 8.1.6 模式 8.1.7 关系 8.2 如何设计...

    PHP5 和 MySQL 圣经(PDF)

    一本全面的PHP 5(流行的开放源代码Web脚本语言...例外和错误处理;调试技巧;PostgreSQL数据库系统;以及PEAR数据库功能,作者根据自己大量的Web经验,提供了如何应用PHP的特别的例子 英文,原名称PHP5 and MySQL Bible

    PHP和MySQL Web开发第4版

    7.5 异常和PHP的其他错误处理机制 7.6 进一步学习 7.7 下一章 第二篇 使用MySQL 第8章 设计Web数据库 8.1 关系数据库的概念 8.1.1 表格 8.1.2 列 8.1.3 行 8.1.4 值 8.1.5 键 8.1.6 模式 8.1.7 关系 ...

    php网络开发完全手册

    5.3 PHP5与PHP4的差异 72 5.4 定义属性和方法 72 5.4.1 属性与方法的定义 72 5.4.2 传统的构造函数 73 5.4.3 PHP类中的一些特殊方法 74 5.5 类的引用、扩展与继承 75 5.5.1 类的引用 75 5.5.2 类的扩展与继承 76 5.6...

    PHP程序设计(第2版) 英文

    第1章 PHP概述 第2章 安装配置Apache和PHP<br>第3章 PHP基础 第4章 函数 第5章 数组 第6章 面向对象的PHP<br>第7章 高级OOP特性 第8章 错误和异常处理 第9章 字符串和正则表达式 第10章 处理...

    PHP与MySQL程序设计(带完整书签)

    第8 章 错误和异常处理 134 第9 章 字符串和正则表达式 146 第10 章 处理文件和操作系统 176 第11 章 pear 197 第12 章 日期和时间 205 第13 章 处理html 表单 219 第14 章 身份验证 231 第15 章 处理文件上传 244 ...

    豌豆框架0.6 - 支持分层敏捷开发的PHP框架

    调试, 支持更详细的错误/异常提供, 支持提示环境中的一些信息. XML格式的配置文件, 使配置更直观, 灵活. 自带有PEAR中的一些基本和常用的类库. 免费的, 开源的. 使用BSD开源协议发行, 你可以用在任何项目中. 框架...

    PHP经典实例

    •第20章 错误处理,故障排除和测试 •第21章 性能调谐和负载测试 •第22章 正则表达式 •第23章 文件 •第24章 目录 •第25章 命令行PHP •第26章 PEAR和PECL 《PHP经典实例(第二版)》中超过250个实例,为你...

    rexpro-php:Rexpro PHP客户端

    请参阅错误处理部分安装MsgPack(可选) rexpro-php不再需要MsgPack,因为它也可以使用json进行序列化。 如果您希望,您仍然可以使用它: 。 从PEAR安装MsgPack:sudo pecl install msgpack-betasudo sh -c ' echo ...

    Pear DB 新手入门指南教程第1/3页

    Pear DB,提供这样一系列的类: n 数据库抽象 n 高级错误处理机制 n 以及其它 2. 下载、安装Pear 由于现在Pear项目仍处于紧锣密鼓的开发之中,所以得到它的最好办法就是从CVS获得(Pear DB发行包已经跟随PHP4.0.6...

    CodeIgniter:php敏捷开发框架web快速开发详解

    不像有些类库如 PEAR 等,集成比较困难,(有时候你会找不到支持 PEAR 的空间),CI 很容易集成,只要把它放入一个目录,它就能很好地工作。CI 所有代码的可读性好,也很健壮,推出前经过社区用户的认真测试,所以在...

    PHP开发框架总结收藏

    Seagull http://seagull.phpkitchen.com/ 推荐一个面向对象的PHP开发框架,使用了Pear类库,其主要特性有:运用组件方式、简化数据访问、错误处理机制和权限认证管理等。studs http://mojavelinux.com/projects/stu

    星外提权工具

    注意,使用最新安全包后,可能会提示回收站被破坏,不用担心,这个提示不影响使用,也不用处理.安全包只能限制了USERs用户的调用回收站造成不安全.正常情况下,回收站只应该有adms,sytem全部的权限. 另外,我们还检查了...

Global site tag (gtag.js) - Google Analytics