zend框架2如何捕获异常?

时间:2012-10-28 23:07:54

标签: exception-handling namespaces zend-db zend-framework2

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

如果取消注释了行,则找不到异常类,并且取消了异常。

如果注释了行,则命名空间为null,并且建立了PHP基础异常类。

我无法取消注释这一行,因为zend在很多地方都需要这样做,例如。 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";
        }
    ?>

1 个答案:

答案 0 :(得分:10)

您需要添加:

use Exception;

或使用:

catch (\Exception $e) {

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

这与How to catch exceptions in your ZF2 controllers?

的问题相同