すべてのエラーを例外に変換することをお勧めします。私はそれに完全に同意します。このソリューションの多くの長所の1つは、エラー用と例外用の2つの個別のハンドラーではなく、1つのハンドラーしかないことです。
ただし、通知/警告を例外に変換すると、スクリプトの実行が発生したときに停止します。これは予期される動作ですか?
エラー処理に例外を使用する場合は注意が必要です。これには 2 つの考え方があります。
ある学校では、エラーに例外を使用することは悪いことであり、制御の流れが混乱する可能性があるため、例外は一般的に慎重に使用する必要があると述べています。
例外を処理する必要があり、if ステートメントでコードが乱雑になるのを防ぐため、他の学校はそれらを気に入っています。
いずれにせよ、例外を使用する場合は、適切な処理を決定する必要があります。それらを捕まえるとどうなりますか?回復できますか?どのように回復しますか?正常に終了しますか?
単に例外を使用するだけでは、話は終わりではありません。
例外をキャッチできます。関数の例:
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 が呼び出された後、実行は停止します。