PHP 오류 처리는 다소 두통이 될 수 있습니다. 일반적으로 응용 프로그램은 시스템 레벨 오류 핸들러를 사용하거나/또는 @ prefix를 사용하여 오류를 억제합니다. 그러나 코드가 트리거 된 오류에 따라 행동 해야하는 경우가 더 까다 롭습니다.
이 라이브러리는 예외를 던지거나 오류가 발생할 때 콜백 코드를 실행하여 코드 블록의 오류를 처리하는 두 가지 편의 방법을 제공합니다.
현재 버전은 php ^7.2|^8.0 지원합니다.
작곡가로 설치하십시오.
composer require phrity/util-errorhandler
이 클래스는 두 가지 주요 방법을 제공합니다. 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() 코드가 완료되면 오류 콜백을 실행합니다. Error Callback은 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 | 초기 버전 |