1

PHP基本例外を使用してzendフレームワーク2で例外をキャッチするにはどうすればよいですか?

行のコメントが解除されている場合、例外クラスが見つからず、例外がキャッチされません。

行がコメント化されている場合、名前空間は null であり、PHP 基本 Exception クラスが作成されます。

多くの場所で 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";
        }
    ?>
4

1 に答える 1

10

次のいずれかを追加する必要があります。

use Exception;

または使用:

catch (\Exception $e) {

組み込みの PHP クラスはすべて、ルート ( \) 名前空間内に存在します。あなたの例の try-catch は、一致しようとしていますSecureDraw\Exception

これは、 ZF2 コントローラーで例外をキャッチする方法と同じ問題です。

于 2012-10-28T23:18:07.410 に答える