だから私はすでにphp.netのすべての例を読んだ。そして、彼らの例のどれも本当に私に固執しませんでした。コードでthrow、try、catchを適切に使用する方法ではなく、どの例外が使用されるかを知っています。また、これはOOPにのみ使用されたのだろうか?それともPHPコードだけですか?「新しい例外をスローする」をどうしたらよいかわかりません。私が知っているのは、コードがtryブロック内に入り、catchがエラーが発生した場合にそれを処理することになっていることだけです。助けてください!
2 に答える
疑似コードを使用するのは、これがPHPだけでなく便利だからです。
メソッドは、対処できない(または対処したくない)問題に遭遇することがあります。方法があるとしましょうsendExDrunkenText($ex)
。これは議論を期待し、$ex
その元ガールフレンドを検索し、とりとめのないSMSを送信します。
このメソッドが提供されたものを見つけることができない場合、$ex
falseなどを返す代わりに、ある種の例外をスローすることです。
if(! exExists($ex)){
throw NoSuchExException("Cant't find supplied ex");
}
(プリコンパイルされた言語(つまりjava)は別として、メソッドを呼び出すメソッドが例外を処理または再スローするように要求できます。このため、これらの言語ではimo例外の方が便利です)。
上記のメソッドを使用している場合、例外がスローされたときに何らかのアクションを実行することをお勧めします。その場合、例外をキャッチして適切に処理できます。
foreach($exList as $ex){
try{
sendExDrunkenText($ex);
}catch(NoSuchExException $exception){
removeFromAddressBook($ex);
}
}
これが理にかなっていることを願っています。
何かが間違っているために実行を停止したい場合は、エラーをスローします(die()の代わりに、または予測できない結果で実行を続行します)。
スローされた例外がtrycatchブロックでキャッチされない場合でも、デバッグを容易にするために、スタックトレース、行番号、およびファイルパスを取得することができます。
例外は、PHPで最高のエラー処理メカニズムです。エラーを見つけてスローし、デバッグを容易にするのに役立ちます。