建立一个Exception对象后你可以将对象返回,但不应该这样使用,更好的方法是用throw要害字来代替。throw用来抛出异常:

throw new Exception(“my message”, 44 );

throw 将脚本的执行中止,并使相关的Exception对象对客户代码可用。

以下是改进过的getCommandObject() 方法:

index_php5.php

// PHP 5

require_once(‘cmd_php5/Command.php’);

class CommandManager {

private $cmdDir = “cmd_php5”;

function getCommandObject($cmd) {

$path = “{$this->cmdDir}/{$cmd}.php”;

if (!file_exists($path)) {

throw new Exception(“Cannot find $path”);

}

require_once $path;

if (!class_exists($cmd)) {

throw new Exception(“class $cmd does not exist”);

}

$class = new ReflectionClass($cmd);

if (!$class->isSubclassOf(new ReflectionClass(‘Command’))) {

throw new Exception(“$cmd is not a Command”);

}

return new $cmd();

}

}

?>

代码中我们使用了PHP5的反射(Reflection)API来判定所给的类是否是属于Command 类型。在错误的路径下执行本脚本将会报出这样的错误:

Fatal error: Uncaught exception ‘Exception’ with message ‘Cannot find command/xrealcommand.php’ in /home/xyz/BasicException.php:10

Stack trace:

#0 /home/xyz/BasicException.php(26):

CommandManager->getCommandObject(‘xrealcommand’)

#1 {main}

thrown in /home/xyz/BasicException.php on line 10

默认地,抛出异常导致一个fatal error。这意味着使用异常的类内建有安全机制。而仅仅使用一个错误标记,不能拥有这样的功能。处理错误标记失败只会你的脚本使用错误的值来继续执行。

www.bkjia.comtrueTechArticle建立一个Exception对象后你可以将对象返回,但不应该这样使用,更好的方法是用throw要害字来代替。throw用来抛出异常: throw new Exception(my…

php throw 应用,PHP5的异常处理机制之使用Throw关键字_PHP教程相关推荐

  1. PHP5的异常处理机制[1]--本文索引

    作者: Matt Zandstra 翻译: Haohappy  04-8-20 Haohappy@msn.com 本文面向的读者 简介 在PHP5之前的错误处理 -使用die()或trigger_er ...

  2. C异常处理机制:setjmp和longjmp

    setjmp()和longjum()是通过操纵过程活动记录实现的.它是C语言所独有的.它们部分你不了C语言有限的转移能力.这个两个函数协同工作,如下所示:     *setjmp(jmp_buf j) ...

  3. 多态的概念、对象上下转型、多态的应用、异常(异常概念、异常分类、java异常处理机制、try...catch...finally、throw和throws、自定义异常)

    多态的概念: 多态性是指同一个操作作用于某一类对象,可以有不同的解释,产生不同的执行结果. 多态存在的三个必要条件: ① 需要存在继承或实现关系 ② 同样的方法调用而执行不同的操作.运行不同代码(重写 ...

  4. 《C++ Primer 第五版》(第5.1-5.6节) ——异常处理机制(try语句块,throw表达式和catch异常捕捉处理单元)

    1. 异常处理机制 C++中使用try,throw和catch三个关键字来实现异常的触发.抛出和处理的功能,具体通用语法形式如下: try{ if(true) normal program-state ...

  5. java异常详细讲解_Java异常处理机制的详细讲解和使用技巧

    一起学习 1. 异常机制 1.1 异常机制是指当程序出现错误后,程序如何处理.具体来说,异常机制提供了程序退出的安全通道.当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器. 1.2 ...

  6. java提供两种处理异常的机制_浅析Java异常处理机制

    关于异常处理的文章已有相当的篇幅,本文简单总结了Java的异常处理机制,并结合代码分析了一些异常处理的最佳实践,对异常的性能开销进行了简单分析. 博客另一篇文章<[译]Java异常处理的最佳实践 ...

  7. c语言c2182是什么错误,C语言中一种更优雅的异常处理机制

    上一篇文章对C语言中的goto语句进行了较深入的阐述,实际上goto语句是面向过程与面向结构化程序语言中,进行异常处理编程的最原始的支持形式.后来为了更好地.更方便地支持异常处理编程机制,使得程序员在 ...

  8. PCL中异常处理机制

    博客转载自:http://www.pclcn.org/study/shownews.php?lang=cn&id=287 本节我们主要讨论PCL在编写和应用过程中如何利用PCL的异常机制,提高 ...

  9. 简述java异常处理机制

    引言: Hello,我的好朋友们,又到我们相聚的时间了,今天我要和大家分享一些有关java异常处理的相关 知识,也是通过老师的讲解和相关材料的借鉴之后的一个比较系统的总结,真心希望写完这篇文章的我和看 ...

最新文章

  1. 【问题收录】[ubuntu]startx doesn't work
  2. MATLAB中floor、round、ceil、fix区别
  3. ctime库函数的使用
  4. 项目: 推箱子图形化游戏 【C++ / C】
  5. 接受java的返回值_java怎样接受 到return的值的?
  6. oracle 恢复 跳过 表空间,Oracle表空间恢复
  7. SAP Cloud for Customer创建Account也会生成对应的Business partner实例
  8. nacos分布式配置中心搭建与使用
  9. 南京林业大学计算机专业分数线,2021南京林业大学录取分数线_历年各专业分数线(2017-2020),各省投档线_一品高考网...
  10. 【机器学习】集成学习(Ensemble Learning)介绍
  11. python之路---15 装饰器
  12. 漫画 前端发展史的江湖恩怨情仇~
  13. IO字节流读取文本中文乱码
  14. 自恢复保险丝工作原理
  15. Android - 接收、监听系统短信广播
  16. HBuilder 使用教程
  17. 什么是Redis?为什么要用Redis?
  18. Hive 3.x详细笔记
  19. Outlook发送后,收到的邮件都是纯文本格式
  20. MOBA摄像机表现及交互式操作

热门文章

  1. css单行文本溢出以...显示
  2. 看看MNIST中的图片
  3. I2C虚拟项目-test3
  4. 22款奔驰E260L加装23P驾驶辅助系统,诸多组件来帮忙
  5. 修改ip地址的软件是真的嘛_如何修改手机ip地址
  6. SpringBoot八种bean的加载方式
  7. ajax 302 重定向不成功问题
  8. matlab实现图像浮雕效果
  9. 杂谈:良好的编程思想。
  10. [原创]让Allvidoes插件支持 优酷(www.youku.com)的视频