2011-09-19 9 views
0

UPDATE를 슬로우 다시해야합니다 내가 이런 걸하고 싶지 : eatch 구성 요소가 내 프레임 워크에서 각 프레임 워크의 구성 요소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 
} 

?> 

마다 별도의 예외가 필요 http://framework.zend.com/wiki/display/ZFDEV2/Proposal+for+Exceptions+in+ZF2 그게 방법을 그 자신의 예외 클래스. 나는 당신의 문제에 대한 해결책의 많은이없는

<?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

하지만 대한 예외 클래스를 갖는 그래서, 응용 프로그램를 ClassA 예외가 발생하거나이 같은 Application\Exception\BadMethodCallExceptionMainMethod 및 다시 throw에서 ClassA\Exception\BadMethodCallException를 잡을해야한다는 것이 논리적이다 귀하의 애플 리케이션의 각 부분은 내 의견에 갈 나쁜 방법입니다. 그것은별로 의미가 없습니다.

난 그냥 오류 코드와 함께 작동하고 그로 "예외 던지기"를 식별합니다.