快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和记娱乐和记怡情AG:PHP5的异常处理机制之使用throw关键字



建立一个Exception工具后你可以将工具返回,但不应该这样应用,更好的措施是用throw关键字来代替。throw用来抛出非常:

throw new Exception( "my message", 44 );

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

以下是改进过的getCommandObject() 措施:

index_php5.php

<?php

// PHP 5

require_once('cmd和记娱乐和记怡情AG_ph和记娱乐和记怡情AGp5/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和记娱乐和记怡情AG 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('xrealco和记娱乐和记怡情AGmmand')

#1 {main}

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

默认地,抛出非常导致一个fatal error。这意味着应用非常的类内建有安然机制。而仅仅应用一个差错标记,不能拥有这样的功能。处置惩罚差错标记掉败只会你的脚本应用差错的值来继和记娱乐和记怡情AG承履行。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: