O manuseio de erros do PHP pode ser uma dor de cabeça. Normalmente, um aplicativo usa um manipulador de erros no nível do sistema e/ou erros de supressão usando o @ prefix. Mas os casos em que seu código precisam agir em erros acionados são mais complicados.
Esta biblioteca fornece dois métodos de conveniência para lidar com erros nos blocos de código, lançando exceções ou executando o código de retorno de chamada quando ocorrer um erro.
A versão atual suporta php ^7.2|^8.0 .
Instalar com compositor;
composer require phrity/util-errorhandler
A classe fornece dois métodos principais; with() e withAll() . A diferença é que with() atuará imediatamente em um erro e abortará a execução adicional do código, enquanto withAll() tentará executar todo o bloco de código antes de agir sobre erros que ocorreram.
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 ;
});Os exemplos acima executarão o código de retorno de chamada, mas se ocorrer um erro, ele lançará uma Errorexception. Mensagem de erro e gravidade serão a do erro de acionamento.
with() jogará imediatamente quando ocorreuwithAll() lançará quando o código estiver concluído; Se mais de um erro ocorreu, o primeiro será jogado 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 ' )); Os exemplos acima executarão o código de retorno de chamada, mas se ocorrer um erro, ele lançará o lançamento fornecido. O arremessador arremessado terá uma Errorexception anexada como $previous .
with() jogará imediatamente quando ocorreuwithAll() lançará quando o código estiver concluído; Se mais de um erro ocorreu, o primeiro será jogado 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 ;
});Os exemplos acima executarão o código de retorno de chamada, mas se ocorrer um erro, ele também chamará o retorno de chamada de erro.
with() executará o retorno de chamada de erro imediatamente quando o erro ocorreu; Erro Retorno de chamada espera uma instância de ErrorexceptionwithAll() executará o retorno de chamada de erro quando o código for concluído; Retorno de chamada de erro espera uma variedade de errorexception e o resultado retornado de retorno de chamada de código Tanto with() e withAll() aceita níveis de erro como ú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 ); Qualquer valor ou combinação de valores aceitos por set_error_handler é utilizável. O padrão é E_ALL . Lista de constantes.
A classe também possui métodos globais set() e 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
}| Versão | Php | |
|---|---|---|
1.1 | ^7.4|^8.0 | Algumas melhorias |
1.0 | ^7.2|^8.0 | Versão inicial |