>백엔드 개발 >PHP 문제 >PHP 프로젝트에서 예외 클래스를 디자인하는 방법

PHP 프로젝트에서 예외 클래스를 디자인하는 방법

王林
王林원래의
2019-09-29 11:54:582171검색

PHP 프로젝트에서 예외 클래스를 디자인하는 방법

PHP 예외 클래스 및 예외 처리 작업

예외 처리는 오류 처리로 분류됩니다. 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 = &#39;Error on line &#39;.$this->getLine().&#39; in &#39;.$this->getFile()
 .&#39;: <b>&#39;.$this->getMessage().&#39;</b> is not a valid E-Mail address&#39;;
 return $errorMsg;
 }
 }
4. 예외 처리

언제 try 문에서 다양한 예외가 발생할 수 있으므로 다양한 유형의 예외를 캡처하기 위해 해당하는 여러 개의 catch 블록이 있을 수 있습니다. Java에서와 동일하게 주의할 사항:
1. 큰 예외는 나중에 잡으세요. 예외가 발생하면 어떤 catch가 먼저 충족되는지 순서대로 결정되고 한 번에 하나의 catch만 실행되기 때문입니다.

2. 시도가 실행되면 최대 한 번의 catch가 실행됩니다(예외가 발생하는 경우). 즉, 이전 catch가 실행을 만족하면 후속 catch는 고려되지 않습니다. 추천 튜토리얼:

PHP 비디오 튜토리얼

위 내용은 PHP 프로젝트에서 예외 클래스를 디자인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

관련 기사

더보기