仓酷云

标题: PHP网页设计PHP5的异常处置机制之利用throw关头字 [打印本页]

作者: 爱飞    时间: 2015-2-4 00:30
标题: PHP网页设计PHP5的异常处置机制之利用throw关头字
PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。php5|关头字|异常处置       创立一个Exception对象后你可以将对象前往,但不该该如许利用,更好的办法是用throw关头字来取代。throw用来抛出异常:

throw new Exception( "my message", 44 );
  throw 将剧本的履行中断,并使相干的Exception对象对客户代码可用。

  以下是改善过的getCommandObject() 办法:

  index_php5.php

<?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。这意味着利用异常的类内建有平安机制。而仅仅利用一个毛病标志,不克不及具有如许的功效。处置毛病标志掉败只会你的剧本利用毛病的值来持续履行。
  培训的第一阶段,学习的是HTML/CSS/JavaScript基础。
作者: 谁可相欹    时间: 2015-2-4 13:15
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 飘飘悠悠    时间: 2015-2-9 23:21
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 飘灵儿    时间: 2015-2-22 20:49
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 海妖    时间: 2015-2-25 11:03
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 乐观    时间: 2015-3-7 19:54
实践是检验自己会不会的真理。
作者: 爱飞    时间: 2015-3-10 08:14
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者: 柔情似水    时间: 2015-3-17 05:44
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 山那边是海    时间: 2015-3-17 18:02
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者: 仓酷云    时间: 2015-3-23 07:11
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 小女巫    时间: 2015-3-27 14:10
Ps:以上纯属原创,如有雷同,纯属巧合
作者: 莫相离    时间: 2015-4-5 00:23
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
作者: 再现理想    时间: 2015-4-5 23:10
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
作者: admin    时间: 2015-4-11 02:10
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 深爱那片海    时间: 2015-4-12 23:18
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 愤怒的大鸟    时间: 2015-4-13 21:07
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
作者: 小魔女    时间: 2015-4-14 18:33
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者: 只想知道    时间: 2015-4-15 01:21
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 因胸联盟    时间: 2015-4-21 10:54
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 蒙在股里    时间: 2015-5-1 01:11
爱上php,他也会爱上你。
作者: 若天明    时间: 2015-5-4 16:37
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2