2017-01-15 7 views
0

メソッドボディ内で発生する例外をスローすることはできますか?私は、関数/メソッド内で 'try/catch'ブロックをいつも使う必要なしに、PDO関連の例外を自動的に 'スロー'したいと思います。PHP、関数catchを作る方法、PDOExceptionsをキャッチする

例:

function testExcption($a..) throws PDOException{ 
    // PDO related code here. 
} 

だから私は、関数/メソッド宣言のレベルで、あらゆるのtry/catchブロックなし「投げる」と例外ができますか?

EDIT

私はのみ関数/メソッド内で発生することができPDO関連する例外の世話をするので、常に「のtry/catch」を書くことを避けるためにしようとしています。私は多くのメソッド/関数を持っており、PDOエラー処理のために「try/catch」を使用することに飽き飽きしています。また、これらの関数/メソッドのPDO例外だけを気にします。それは理にかなっていますか?

EDIT

/catchブロックを試してみてくださいO/W PDOのエラーを取得する方法はありますか?

答えて

0

多分あなたは物事を混同しています。 の例外は、try/catchの記述なしで投じられます。例外をスローするのと同じくらい簡単です:あなたが機能を呼び出すときに、他の側では

function nonsensefunc(){ 
    throw new Exception('<Description of Error>'); 
} 

、あなたはにそれらをキャッチされ、try/catchを使用する必要があります。

エラーをキャッチしないとどうなりますか? Exceptionは一段高く投げられ、最終的にプリントアウトされます。ほとんどの場合、PHPで中止をトリガーし、残りのスクリプトを停止します。

あなたの期待する行動は何ですか?デフォルトの動作(エラーを出力して停止する)として他のことを行う唯一の方法は、それをキャッチすることです。

+0

いいえ、混乱していると思います。私は単に、PDOの例外だけがtry/catchブロックを使用してメソッド/関数W/O内で捕捉されることを望みます。なぜなら、私は特別に処理したい例外です。 Javaでは、メソッド宣言レベルで例外をスローすることができます、それはPHPで可能ですか? – Dave2345

+0

宣言レベルでエラーを投げることはありません!あなたはコンパイラを言って、**この種のエラーになる可能性があります。これ以上何もない。エラーが発生したときに投げられます。そのエラーは、呼び出しスタック内でレベルが高くなり、そこにキャッチされていない場合は上にスローされます。最後に、コアが処理します(スクリプトを停止します)。Javaと同じです。 –

+0

それでは、try/catchブロックなしで処理を続けるために例外をキャッチする方法はありますか? – Dave2345

関連する問題