2017-08-04 10 views
0
try { 

} catch (Exception $e) { 

} 

PHPに型推論があると思っていました。変数$ e--の型を宣言する必要があるのはなぜですか?

+1

複数の例外タイプが存在する可能性があるため、例外のインスタンスに基づいてさまざまなことを行いたい場合は、 'catch'キーワードをスタックすることができます。 –

+0

[PHPでエラーまたは例外処理中にcatch($ e)で$ eとは何ですか?](https://www.quora.com/What-is-e-in-catch-e-while-error-or- PHPでの例外処理) –

答えて

0

コードでは、異なるクラスの例外がスローされることがあります。エラー処理のために適切なコードを追加することができます。

tryブロックの後に任意の数のcatchブロックを続けることができます。

例:上記のサンプルを使用して

try 
{ 
} 
catch(\PDOException $e) 
{ 
    // Something bad happened while dealing with database 
} 
catch(\LengthException $e) 
{ 
    // Length exception occurred 
} 
catch(\Exception $e) 
{ 
    // The \Exception is the parent class for all exceptions, this handles anything not caught in above example 
} 

、あなたは彼らが発生したなぜに応じて、エラーを処理するための適切な措置をとることができます。つまり、定義した例外をスローすることができます。過度に処理しないで、エラー処理全体を例外でスワップするのが最善です。例外は、コードフローに異常が発生した場合などに発生します。たとえば、MySQLへの接続が途中で中断した場合などです。

+0

恐ろしい、ありがとう。このタイプの強制的な振る舞いも関数に対しても働くことができますか? –

+0

正確にはどういう意味ですか?関数が例外をスローした場合は、例外がスローされる可能性があります。例えば、 –

+0

のような関数を宣言できますか?function acceptException(Exception $ e){} –