-1

だから私はすでにphp.netのすべての例を読んだ。そして、彼らの例のどれも本当に私に固執しませんでした。コードでthrow、try、catchを適切に使用する方法ではなく、どの例外が使用されるかを知っています。また、これはOOPにのみ使用されたのだろうか?それともPHPコードだけですか?「新しい例外をスローする」をどうしたらよいかわかりません。私が知っているのは、コードがtryブロック内に入り、catchがエラーが発生した場合にそれを処理することになっていることだけです。助けてください!

4

2 に答える 2

1

疑似コードを使用するのは、これがPHPだけでなく便利だからです。

メソッドは、対処できない(または対処したくない)問題に遭遇することがあります。方法があるとしましょうsendExDrunkenText($ex)。これは議論を期待し、$exその元ガールフレンドを検索し、とりとめのないSMSを送信します。

このメソッドが提供されたものを見つけることができない場合、$exfalseなどを返す代わりに、ある種の例外をスローすることです。

if(! exExists($ex)){
    throw NoSuchExException("Cant't find supplied ex");
}

(プリコンパイルされた言語(つまりjava)は別として、メソッドを呼び出すメソッドが例外を処理または再スローするように要求できます。このため、これらの言語ではimo例外の方が便利です)。

上記のメソッドを使用している場合、例外がスローされたときに何らかのアクションを実行することをお勧めします。その場合、例外をキャッチして適切に処理できます。

foreach($exList as $ex){
    try{
          sendExDrunkenText($ex);
    }catch(NoSuchExException $exception){
        removeFromAddressBook($ex);
    }

}

これが理にかなっていることを願っています。

于 2013-01-08T02:58:18.380 に答える
0

何かが間違っているために実行を停止したい場合は、エラーをスローします(die()の代わりに、または予測できない結果で実行を続行します)。

スローされた例外がtrycatchブロックでキャッチされない場合でも、デバッグを容易にするために、スタックトレース、行番号、およびファイルパスを取得することができます。

例外は、PHPで最高のエラー処理メカニズムです。エラーを見つけてスローし、デバッグを容易にするのに役立ちます。

于 2013-01-08T02:48:36.370 に答える