PHP 7 오류 처리

PHP 7에서는 대부분의 오류가 보고되는 방식이 변경되었습니다. PHP 5의 기존 오류 보고 메커니즘과 달리 대부분의 오류는 이제 Error 예외로 발생합니다.

이런 종류의 오류 예외는 일반 예외처럼 try/catch 블록으로 catch할 수 있습니다. 일치하는 try / catch 블록이 없으면 처리를 위해 예외 처리 함수(set_Exception_handler()에 의해 등록됨)가 호출됩니다. 예외 처리기가 등록되지 않은 경우 기존 방식으로 처리됩니다. 즉, 치명적인 오류로 보고됩니다.

Error 클래스는 Exception 클래스에서 확장되지 않으므로 catch (Exception $e) { ... }와 같은 코드는 Error를 포착할 수 없습니다. catch (Error $e) { ... }와 같은 코드를 사용하거나 예외 처리기(set_Exception_handler())를 등록하여 오류를 잡을 수 있습니다.

오류 예외 계층 구조

  • Error
    • ArithmeticError
    • AssertionError
    • DivisionByZero 오류
    • ParseError
    • TypeError
  • Exception
    • ...

1458887252-2773-exception-hiearchy.jpg

Instance

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

   // 求余数运算,除数为 0,抛出异常 
   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
지속적인 학습
||
<?php class MathOperations { protected $n = 10; // 求余数运算,除数为 0,抛出异常 public function doOperation(): string { try { $value = $this->n % 0; return $value; } catch (DivisionByZeroError $e) { return $e->getMessage(); } } } $mathOperationsObj = new MathOperations(); print($mathOperationsObj->doOperation()); ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~