zend框架2如何捕获异常?

jos*_*mra 1 exception-handling namespaces zend-db zend-framework2

如何使用PHP基本异常在zend框架2中捕获异常?

如果取消注释行,则找不到Exception类,并且取消捕获异常.

如果对行进行注释,则命名空间为null,并且建立PHP基本异常类.

我无法取消注释这一行,因为zend在很多地方都需要它,ig ActionController.

怎么样?
我是否只使用Zend Exceptions?我必须使用什么是更通用的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";
        }
    ?>
Run Code Online (Sandbox Code Playgroud)

DrB*_*eza 10

您需要添加:

use Exception;
Run Code Online (Sandbox Code Playgroud)

或使用:

catch (\Exception $e) {
Run Code Online (Sandbox Code Playgroud)

所有内置的PHP类都存在于root(\)命名空间中.您的示例中的try-catch正在尝试匹配SecureDraw\Exception.

这与如何在ZF2控制器中捕获异常的问题相同