PHP 7-오류 처리

PHP 7부터 오류 처리 및보고가 변경되었습니다. PHP 5에서 사용하는 기존 오류보고 메커니즘을 통해 오류를보고하는 대신 이제 대부분의 오류는 오류 예외를 발생시켜 처리됩니다. 예외와 유사하게 이러한 오류 예외는 첫 번째 일치 catch 블록에 도달 할 때까지 버블 링됩니다. 일치하는 블록이 없으면 다음과 함께 설치된 기본 예외 처리기set_exception_handler()호출됩니다. 기본 예외 처리기가없는 경우 예외는 치명적인 오류로 변환되고 기존 오류처럼 처리됩니다.

오류 계층이 Exception에서 확장되지 않았기 때문에, PHP 5에서 catch (Exception $ e) {...} 블록을 사용하여 포착되지 않은 예외를 처리하는 코드는 이러한 오류를 처리하지 않습니다. catch (Error $ e) {...} 블록 또는set_exception_handler() 치명적인 오류를 처리하려면 핸들러가 필요합니다.

<?php
   class MathOperations {
      protected $n = 10;

      // Try to get the Division by Zero error object and display as Exception
      public function doOperation(): string {
         try {
            $value = $this->n % 0;
            return $value;
         } catch (DivisionByZeroError $e) {
            return $e->getMessage();
         }
      }
   }

   $mathOperationsObj = new MathOperations();
   print($mathOperationsObj->doOperation());
?>

다음 브라우저 출력을 생성합니다.

Modulo by zero