2012-10-28 2 views
1

어떻게 PHP 기반 예외를 사용하여 zend 프레임 워크 2에서 예외를 잡을 수 있습니까?zend framework 2 잡는 예외는 어떻게됩니까?

라인의 주석 처리가 해제되면 Exception 클래스를 찾을 수 없으며 예외가 검색되지 않습니다.

line이 주석 처리되면 namespace가 null이고 PHP 기본 Exception 클래스가 발견됩니다.

많은 부분에서 zend가 필요하기 때문에이 줄의 주석 처리를 제거 할 수 없습니다. ActionController.

어떻게합니까?
Zend 예외 만 사용합니까? 내가 사용해야하는 것은 무엇이며 더 일반적인 젠드 Exception 클래스는 무엇입니까?

<?php namespace SecureDraw; ?> // <<----- If remove this line catch work ok!! 
    <?php echo $this->doctype(); ?> 
    <?php 
     use Zend\Db\Adapter\Adapter as DbAdapter; 

     try{ 
      $dbAdapter = new DbAdapter(array( 
       'driver' => 'Pdo_Mysql', 
       'database' => 'securedraw', 
       'username' => 'root', 
       'password' => '', 
      ));   
      $sql = "select * from tablenotexist"; 
      $statement = $dbAdapter->createStatement($sql); 
      $sqlResult = $statement->execute(); 
     } 
     catch(Exception $e){ 
      echo "hello"; 
     } 
    ?> 

답변

10

당신은 추가하거나 필요

use Exception; 

또는 사용 :

catch (\Exception $e) { 

모든 PHP 클래스의 루트 내에 존재하는 내장 (\) 네임 스페이스. 귀하의 예에서 try-catch가 SecureDraw\Exception과 일치하려고합니다.

이 문제는 How to catch exceptions in your ZF2 controllers?

과 같습니다.