예외 처리는 오류 처리로 분류됩니다. PHP는 5.1.0부터 예외 예외 처리 클래스를 추가했습니다.
1. 예외 처리
PHP 예외 처리는 모두 예외가 발생할 때 코드에 try, throw 및 catch 문을 사용하는 것과 유사합니다. 예외가 catch되지 않고 해당 처리에 set_Exception_handler() 함수를 사용하면 심각한 오류(치명적 오류)가 발생하고 "Uncaught Exception" 오류 메시지가 출력됩니다.
1. try:
은 예외가 발생할 수 있는 코드 블록에 사용됩니다.
2. throw:
예외를 트리거(트리거)하는 방법을 지정하고 예외를 발생시키는 데 사용됩니다. 각 던지기는 적어도 한 번의 잡기와 일치해야 합니다.
3. catch:
예외를 포착하고 예외 정보가 포함된 개체를 만듭니다.
참고: 이를 포착하기 위해 PHP 예외가 발생해야 한다고 가정해 보겠습니다. PHP 예외 구조 : PHP 예외 기본 클래스 예외
클래스 요약 :
try{ #some codes throw new Exception("message"[,code[,...]]); } catch(Exception $ex){ #some codes }
description :
이 기본 클래스에서 볼 수있는 PHP 예외 객체는 주로 볼 수 있습니다. 예외 텍스트 정보(메시지), 예외 코드/코드명(코드, 개발자 식별을 위해 사용해야 함), 예외가 발생한 파일(파일, 즉 예외가 발생한 php 파일), 예외가 발생한 특정 위치가 포함됩니다. 예외가 발생했습니다(예외가 발생한 줄). 줄 번호).
Exception { /* 属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* 方法 */ public __construct ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] ) final public string getMessage ( void ) final public Exception getPrevious ( void ) //获取异常链中前一个异常 final public int getCode ( void ) final public string getFile ( void ) final public int getLine ( void ) final public array getTrace ( void ) //获取异常追踪信息 final public string getTraceAsString ( void ) //字符串方式返回异常追踪信息 public string __toString ( void ) final private void __clone ( void ) }3. 사용자 정의 예외 클래스
예:
<?php try { throw new Exception("Some error message", 30);//抛出异常,设置异常代号为30 } catch(Exception $e) { echo "Exception:file:".$e->getFile().",message:" . $e->getMessage().",code:".$e->getCode()."line:".$e->getLine(); } ?>
예외를 던지고 잡기:
class customException extends Exception { public function errorMessage() { //error message $errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile() .': <b>'.$this->getMessage().'</b> is not a valid E-Mail address'; return $errorMsg; } }4. 예외 처리
언제 try 문에서 다양한 예외가 발생할 수 있으므로 다양한 유형의 예외를 캡처하기 위해 해당하는 여러 개의 catch 블록이 있을 수 있습니다. Java에서와 동일하게 주의할 사항:
1. 큰 예외는 나중에 잡으세요. 예외가 발생하면 어떤 catch가 먼저 충족되는지 순서대로 결정되고 한 번에 하나의 catch만 실행되기 때문입니다.
2. 시도가 실행되면 최대 한 번의 catch가 실행됩니다(예외가 발생하는 경우). 즉, 이전 catch가 실행을 만족하면 후속 catch는 고려되지 않습니다. 추천 튜토리얼:
PHP 비디오 튜토리얼위 내용은 PHP 프로젝트에서 예외 클래스를 디자인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!