Penanganan kesalahan PHP bisa agak sakit kepala. Biasanya aplikasi menggunakan penangan kesalahan tingkat sistem dan/atau menekan kesalahan menggunakan @ awalan. Tetapi kasus -kasus ketika kode Anda perlu bertindak berdasarkan kesalahan yang dipicu lebih rumit.
Perpustakaan ini menyediakan dua metode kenyamanan untuk menangani kesalahan pada blok kode, baik dengan melemparkan pengecualian atau menjalankan kode panggilan balik ketika terjadi kesalahan.
Versi saat ini mendukung PHP ^7.2|^8.0 .
Instal dengan komposer;
composer require phrity/util-errorhandler
Kelas menyediakan dua metode utama; with() dan withAll() . Perbedaannya adalah bahwa with() akan segera bertindak berdasarkan kesalahan dan membatalkan eksekusi kode lebih lanjut, sementara withAll() akan berusaha untuk menjalankan seluruh blok kode sebelum bertindak berdasarkan kesalahan yang terjadi.
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 ;
});Contoh -contoh di atas akan menjalankan kode panggilan balik, tetapi jika terjadi kesalahan, itu akan melempar errorexception. Pesan dan keparahan kesalahan akan menjadi kesalahan pemicu.
with() akan segera dilemparkan saat terjadiwithAll() akan melempar saat kode selesai; Jika terjadi lebih dari satu kesalahan, yang pertama akan dilemparkan 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 ' )); Contoh -contoh di atas akan menjalankan kode panggilan balik, tetapi jika terjadi kesalahan, itu akan dilempar disediakan. Throwable yang dilempar akan memiliki kesalahan yang terlampir sebagai $previous .
with() akan segera dilemparkan saat terjadiwithAll() akan melempar saat kode selesai; Jika terjadi lebih dari satu kesalahan, yang pertama akan dilemparkan 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 ;
});Contoh -contoh di atas akan menjalankan kode panggilan balik, tetapi jika terjadi kesalahan, itu akan memanggil callback kesalahan juga.
with() akan segera menjalankan callback kesalahan saat kesalahan terjadi; Callback kesalahan mengharapkan instance errorexceptionwithAll() akan menjalankan callback kesalahan saat kode selesai; Callback kesalahan mengharapkan array errorexception dan hasil yang dikembalikan dari panggilan balik kode Baik with() dan withAll() menerima tingkat kesalahan sebagai parameter terakhir.
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 ); Nilai atau kombinasi nilai apa pun yang diterima oleh set_error_handler dapat digunakan. Default adalah E_ALL . Daftar konstanta.
Kelas ini juga memiliki metode Global set() dan 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
}| Versi | Php | |
|---|---|---|
1.1 | ^7.4|^8.0 | Beberapa perbaikan |
1.0 | ^7.2|^8.0 | Versi awal |