PHP 7 오류 처리
PHP 7은 잘못된 방법으로 대부분의 보고서를 변경합니다. 이제 기존의 PHP 오류보고기구 (5)과는 달리 대부분의 오류는 예외 오류로 발생된다.
이 오류 예외가 이상 촬영 try / catch 블록으로 정상이 될 수 있습니다. 일치 try / catch 블록 경우, 처리합니다 (set_exception_handler에 의해 등록 ()) 예외 핸들러를 호출합니다. 당신이 예외 핸들러가 전통적인 방법으로 처리 등록하지 않은 경우 : 치명적인 오류 (치명적 오류)로보고됩니다.
Error 클래스는 예외 클래스로부터 확장, 그래서이 코드는 오류를 캡처 할 수없는 {...} 캐치 (예외 $ 전자)를 사용하지 않습니다. 당신은 {...}이 코드를 캐치 (오류 $ 전자)와 오류를 잡을 또는 등록 예외 핸들러에 의해 수 (set_exception_handler ()).
오류 예외 구조
- 오류
- ArithmeticError
- AssertionError를
- DivisionByZeroError
- ParseError
- 형식 오류
- 예외
- ...
예
예
<? php에
클래스 MathOperations
{
보호 $ N = 10;
// 나머지 작업은, 제수는 예외가 발생, 0
공공 기능 doOperation () : 문자열
{
{시도
$ 값 = $이 -> n 개의 % 0;
$ 값을 반환;
} 캐치 (DivisionByZeroError의 $ 전자) {
$ 전자를 반환 -> GetMessage 함수 () ;
}
}
}
$ mathOperationsObj = 새로운 MathOperations ();
인쇄 ($ mathOperationsObj -> doOperation ( ));
?>
클래스 MathOperations
{
보호 $ N = 10;
// 나머지 작업은, 제수는 예외가 발생, 0
공공 기능 doOperation () : 문자열
{
{시도
$ 값 = $이 -> n 개의 % 0;
$ 값을 반환;
} 캐치 (DivisionByZeroError의 $ 전자) {
$ 전자를 반환 -> GetMessage 함수 () ;
}
}
}
$ mathOperationsObj = 새로운 MathOperations ();
인쇄 ($ mathOperationsObj -> doOperation ( ));
?>
위의 프로그램 실행 출력은 다음과 같습니다
Modulo by zero