0

すべてのエラーを例外に変換することをお勧めします。私はそれに完全に同意します。このソリューションの多くの長所の1つは、エラー用と例外用の2つの個別のハンドラーではなく、1つのハンドラーしかないことです。

ただし、通知/警告を例外に変換すると、スクリプトの実行が発生したときに停止します。これは予期される動作ですか?

4

2 に答える 2

2

エラー処理に例外を使用する場合は注意が必要です。これには 2 つの考え方があります。

ある学校では、エラーに例外を使用することは悪いことであり、制御の流れが混乱する可能性があるため、例外は一般的に慎重に使用する必要があると述べています。

例外を処理する必要があり、if ステートメントでコードが乱雑になるのを防ぐため、他の学校はそれらを気に入っています。

いずれにせよ、例外を使用する場合は、適切な処理を決定する必要があります。それらを捕まえるとどうなりますか?回復できますか?どのように回復しますか?正常に終了しますか?

単に例外を使用するだけでは、話は終わりではありません。

于 2012-11-29T17:05:22.593 に答える
0

例外をキャッチできます。関数の例:

function myFunction($num){
    if(!is_int($num)){
        throw new Exception('Int expected. ' . gettype($num) . ' given instead.');
    }
}

次に、スローされる可能性がある、またはスローされない可能性のある例外をキャッチします (それらをキャッチすることが理にかなっている場合)。

try{
    myFunction('Hello?');
}
catch(Exception $e){
    //Do something
    var_dump($e);
}

関数set_exception_handlerも調べる必要があります。

例外が try/catch ブロック内でキャッチされない場合、デフォルトの例外ハンドラーを設定します。exception_handler が呼び出された後、実行は停止します。

于 2012-11-29T17:06:28.723 に答える