1

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

如果未注释行,则找不到异常类并且未捕获异常。

如果注释行,则命名空间为空,并创建 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";
        }
    ?>
4

1 回答 1

10

您需要添加:

use Exception;

或使用:

catch (\Exception $e) {

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

这与如何在 ZF2 控制器中捕获异常是同一个问题?

于 2012-10-28T23:18:07.410 回答