El manejo de errores de PHP puede ser un dolor de cabeza. Por lo general, una aplicación utiliza un controlador de errores de nivel de sistema y/o errores de supresión utilizando el prefix @ . Pero los casos en que su código necesita actuar en errores activados son más complicados.
Esta biblioteca proporciona dos métodos de conveniencia para manejar errores en bloques de código, ya sea lanzando excepciones o ejecutando código de devolución de llamada cuando ocurre un error.
La versión actual es compatible con PHP ^7.2|^8.0 .
Instalar con compositor;
composer require phrity/util-errorhandler
La clase proporciona dos métodos principales; with() y withAll() . La diferencia es que with() actuará inmediatamente en un error y abortará una mayor ejecución del código, mientras que withAll() intentará ejecutar todo el bloque de código antes de actuar sobre los errores que ocurrieron.
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 ;
});Los ejemplos anteriores ejecutarán el código de devolución de llamada, pero si se produce un error, lanzará una ErrorException. El mensaje de error y la gravedad serán el del error de activación.
with() lanzará inmediatamente cuando se ocurrawithAll() lanzará cuando el código esté completo; Si se produjo más de un error, se lanzará el primero 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 ' )); Los ejemplos anteriores ejecutarán el código de devolución de llamada, pero si ocurre un error, se lanzará proporcionable. El lanzamiento lanzado tendrá una ErrorException adjunta como $previous .
with() lanzará inmediatamente cuando se ocurrawithAll() lanzará cuando el código esté completo; Si se produjo más de un error, se lanzará el primero 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 ;
});Los ejemplos anteriores ejecutarán el código de devolución de llamada, pero si se produce un error, también llamará a la devolución de llamada de error.
with() ejecutará la devolución de llamada de error inmediatamente cuando ocurriera el error; Error de devolución de llamada espera una instancia de ErrorExceptionwithAll() ejecutará la devolución de llamada de error cuando el código esté completo; La devolución de llamada de error espera una matriz de ErrorException y el resultado devuelto de la devolución de llamada del código Tanto with() como withAll() acepta los niveles de error como el último parámetro.
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 ); Se utilizan cualquier valor o combinación de valores aceptados por set_error_handler. El valor predeterminado es E_ALL . Lista de constantes.
La clase también tiene métodos globales set() y 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ón | Php | |
|---|---|---|
1.1 | ^7.4|^8.0 | Algunas mejoras |
1.0 | ^7.2|^8.0 | Versión inicial |