0
UPDATE: 我想要做这样的事情:http://framework.zend.com/wiki/display/ZFDEV2/Proposal+for+Exceptions+in+ZF2 这就是方式,我需要为每个框架组件PHP例外:应例外重新抛出
<?php
class ClassA {
public function doSomething() {
throw new ClassA\Exception\BadMethodCallException('bad method called');
}
}
class Application {
public function MainMethod() {
$ClassA = new ClassA();
$ClassA->doSomething();
}
}
try {
$Application = new Application();
$Application->MainMethod();
} catch(\Application\Exception $e) {
// exception cannot be catched, because ClassA\Exception\BadMethodCallException was thrown
}
?>
每一个单独的异常在我的框架eatch组件都有其自己的异常类。那么,是不是合乎逻辑的应用程序将引发异常的ClassA,或者我应该赶在ClassA\Exception\BadMethodCallException
和MainMethod
作为重新抛出Application\Exception\BadMethodCallException
这样的:
<?php
class Application {
public function MainMethod() {
$ClassA = new ClassA();
try {
$ClassA->doSomething();
} catch(\ClassA\Exception\BadMethodCallException $e) {
throw new Application\Exception\BadMethodCallException('message', null, $e);
}
}
}
?>
那么你就会有这么多的'try/catch'语句。所有异常类的动机是什么?如果它允许您追踪异常,则可以使用一个或两个异常类在异常中打印文件/类名称。 – Alex