PHPエラー処理は、やや頭痛の種になる可能性があります。通常、アプリケーションは、 @プレフィックスを使用してシステムレベルエラーハンドラーおよび/または抑制エラーを使用します。ただし、コードがトリガーされたエラーに基づいて動作する必要がある場合は、より注意が必要です。
このライブラリは、例外をスローするか、エラーが発生したときにコールバックコードを実行することにより、コードブロックのエラーを処理する2つの利便性方法を提供します。
現在のバージョンはphp ^7.2|^8.0をサポートしています。
作曲家と一緒にインストールします。
composer require phrity/util-errorhandler
クラスは2つの主要な方法を提供します。 with()およびwithAll() 。違いは、 with()がエラーに直ちに作用し、さらにコード実行を中止し、 withAll()は発生したエラーに作用する前にコードブロック全体を実行しようとすることです。
use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
});
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
});上記の例では、コールバックコードが実行されますが、エラーが発生した場合、Errorexceptionがスローされます。エラーメッセージと重大度は、トリガーエラーのそれになります。
with()発生したときにすぐにスローしますwithAll() 、コードが完了するとスローします。複数のエラーが発生した場合、最初のエラーがスローされます use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
}, new RuntimeException ( ' A specified error ' ));
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
}, new RuntimeException ( ' A specified error ' ));上記の例はコールバックコードを実行しますが、エラーが発生した場合、スロー可能なスロー可能になります。スローされたスロー可能なものには、 $previous errorexceptionが添付されます。
with()発生したときにすぐにスローしますwithAll() 、コードが完了するとスローします。複数のエラーが発生した場合、最初のエラーがスローされます use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
}, function ( ErrorException $ error ) {
// Code to handle error
return $ error_result ;
});
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
}, function ( array $ errors , $ success_result ) {
// Code to handle errors
return $ error_result ;
});上記の例はコールバックコードを実行しますが、エラーが発生した場合、エラーコールバックも呼び出します。
with() 、エラーが発生したときにすぐにエラーコールバックを実行します。エラーコールバックは、errorexceptionインスタンスを期待していますwithAll() 、コードが完了したときにエラーコールバックを実行します。エラーコールバックは、errorexceptionの配列とコードコールバックの返された結果を期待していますwith()とwithAll()の両方が、エラーレベルを最後のパラメーターとして受け入れます。
use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
}, null , E_USER_ERROR );
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
}, null , E_USER_ERROR & E_USER_WARNING ); set_error_handlerによって受け入れられている値の値または組み合わせは使用可能です。デフォルトはE_ALLです。定数のリスト。
クラスには、Global set()およびrestore()メソッドもあります。
use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ handler -> set (); // Throws ErrorException on error
$ handler -> set ( new RuntimeException ( ' A specified error ' )); // Throws provided Throwable on error
$ handler -> set ( function ( ErrorException $ error ) {
// Code to handle errors
return $ error_result ;
}); // Runs callback on error
$ handler -> restore (); // Restores error handler Phrity Util ErrorHandler {
/* Methods */
public __construct()
public with (callable $ callback , mixed $ handling = null , int $ levels = E_ALL ) : mixed
public withAll (callable $ callback , mixed $ handling = null , int $ levels = E_ALL ) : mixed
public set ( $ handling = null , int $ levels = E_ALL ) : mixed
public restore () : bool
}| バージョン | Php | |
|---|---|---|
1.1 | ^7.4|^8.0 | いくつかの改善 |
1.0 | ^7.2|^8.0 | 初期バージョン |