2011-09-19 122 views
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\BadMethodCallExceptionMainMethod作为重新抛出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); 
      } 
     } 
    } 
?> 
+0

那么你就会有这么多的'try/catch'语句。所有异常类的动机是什么?如果它允许您追踪异常,则可以使用一个或两个异常类在异常中打印文件/类名称。 – Alex

回答

0

我没有太多的为你的问题的解决方案,但具有一个异常类在我看来,你的应用的每个部分都是一个不好的方法。这没有多大意义。

我只是与错误代码一起工作,并通过它来识别“Exception thrower”。