您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

具有新特性的PHP5之异常处理机制_PHP教程

2025/5/9 13:11:09发布24次查看
php(做为现在的主流开发语言)5之前的错误处理
在php(做为现在的主流开发语言)5之前的程序错误处理多使用以下三种办法:
1.使用trigger_error()或die()函数来生成一个脚本层次的警告(warning)或致命错误(fatal error);
2.在类方法或函数中返回一个错误标记(如false),也可能设置一个之后可以检查的属性或全局变量(如$error),然后在适合的地方检验其值再决定是否继续执行程序(如if($error==1){});
3.使用pear处理错误;
(一)使用die()或trigger_error()
你可以使用die()函数来结束程序运行。以下是一个简单的类,它尝试从一个目录中加载一个类文件。
代码列表 index.php(做为现在的主流开发语言) ?>
cmddir}/{$cmd}.php(做为现在的主流开发语言);
if (!file_exists($path)) {
die(cannot find $path);
}
require_once $path;
if (!class_exists($cmd)) {
die(class $cmd does not exist);
}
$ret = new $cmd();
if (!is_a($ret, command)) {
die($cmd is not a command);
}
return $ret;
}
}
?>
这是一个用php(做为现在的主流开发语言)实现“command pattern设计模式”的简单例子(请参看《java与模式》)。使用这个类的程序员(客户程序员client coder)可以将一个类放到目录中(例中为cmd_php(做为现在的主流开发语言)4目录)。一旦文件和其中包含的类同名,并且这个类是command类的子类,我们的类方法将生成一个可用的command对象。command类中定义了一个 execute()方法用来执行找到的命令,即 getcommandobject()方法返回的对象将执行execute().
我们再看看父类command类,我们将它存在cmd_php(做为现在的主流开发语言)4/command.php(做为现在的主流开发语言)文件中。
代码列表cmd_php(做为现在的主流开发语言)4/command.php(做为现在的主流开发语言) ?>
你可以看到,command是php(做为现在的主流开发语言)4中抽象类的实现,我们无法直接将其实例化,而必须先从中派生中子类然后再实例化。当我们使用php(做为现在的主流开发语言)5后,我们可以使用更好的方式—使用abstract关键字将类和方法声明为“抽象”:
代码列表 ?>
下面是对上面的抽象类的实现,覆写了execute()方法,在其中加入真正可以执行的内容。这个类命名为realcommand,可以在cmd_php(做为现在的主流开发语言)4/realcommand.php(做为现在的主流开发语言)文件中找到。
代码列表 cmd_php(做为现在的主流开发语言)4/realcommand.php(做为现在的主流开发语言) ?>
使用这样的结构可以使代码变得很灵活。你可以在任何时候增加新的command类,而不需要改变外围的框架。但是你不得不注意一些潜在的中止脚本执行的因素。我们需要确保类文件存在,并且在文件中该类存在,并且该类是command的子类(就像realcommand一样)。
在例子中,如果我们尝试寻找类的操作失败,脚本执行将会中止,这体现了代码的安全性。但这段代码不灵活,没有足够的弹性。极端的反映是类方法只能进行积极正面的操作,它只负责找出和实例化一个command对象。它无法处理更大范围内脚本执行的错误(当然它也不应该负责处理错误,如果我们给某个类方法加上太多与周边代码的关联,那么这个类的重用将会变得困难,不易扩展)。
http://www.bkjia.com/phpjc/509137.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/509137.htmltecharticlephp (做为现在的主流开发语言) 5之前的错误处理 在php (做为现在的主流开发语言) 5之前的程序错误处理多使用以下三种办法: 1.使用trigg...
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product