PHP에서는 예외 처리 클래스 "Exception"의 다양한 내장 멤버 함수를 사용하여 예외 데이터를 얻고 반환할 수 있습니다. 예를 들어 getMessage() 함수는 " 프로그램에서 예외를 잡으려면 catch" 문과 "throw" 키워드를 사용해 보세요.
이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터
PHP의 예외 처리 클래스
PHP는 내장 예외 처리 클래스를 제공합니다 - 예외, 이 클래스에서 일반적으로 사용되는 멤버 함수는 다음과 같습니다.
getMessage(): 예외의 메시지 내용을 반환합니다.
getCode(): 숫자 형식으로 예외 코드를 반환합니다. 예외가 발생한 파일 Name;
getLine(): 오류가 발생한 코드 줄 번호를 반환합니다.
getTrace(): backtrace() 배열을 반환합니다.
getTraceAsString(): 문자열로 형식화된 함수
__toString()에 의해 생성된 정보: 오버로드될 수 있는 예외 문자열 정보를 생성합니다. 함수 앞에는 두 개의 밑줄이 있습니다.
다음 코드는 Exception 클래스의 전체 코드입니다. 이 클래스의 정의에서 사용자 파생 하위 클래스에서 어떤 속성과 메서드(멤버 함수)에 액세스하고 상속할 수 있는지 확인할 수 있습니다.
Exception { /* 属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; /* 方法 */ public __construct ([ string $message = "" [, int $code = 0 [, Throwable $previous = NULL ]]] ) final public getMessage ( void ) : string final public getPrevious ( void ) : Throwable final public getCode ( void ) : int final public getFile ( void ) : string final public getLine ( void ) : int final public getTrace ( void ) : array final public getTraceAsString ( void ) : string public __toString ( void ) : string final private __clone ( void ) : void }
PHP에서 프로그램에서 예외를 포착하려면 try catch 문과 throw 키워드를 사용해야 합니다. try catch 문은 흐름 제어 문과 유사하므로 try catch 문을 사용하여 대체 조건부 선택 구조를 구현할 수 있고 throw 키워드는 예외를 발생시킬 수 있습니다. try catch 문의 구문 형식은 다음과 같습니다. try{
// 可能出现异常或错误的代码,比如文件操作、数据库操作等
}catch(Exception $e){ // $e 为一个异常类的对象
// 输出错误信息
}
try 코드 블록이 더 이상 예외를 발생시키지 않거나 발생한 예외와 일치하는 catch를 찾을 수 없으면 PHP 코드는 마지막 catch로 점프한 후 계속 실행됩니다.
PHP 코드에서 생성된 예외는 throw 문에 의해 발생되고 catch 문에 의해 포착될 수 있습니다. 물론, PHP는 catch 블록 내에서 예외가 다시 발생하도록 허용합니다.
예외가 발생하면 후속 코드는 계속 실행되지 않으며 PHP는 계속해서 첫 번째로 일치하는 캐치를 찾으려고 시도합니다. 예외가 catch되지 않고 set_Exception_handler()를 사용하여 적절하게 처리되지 않으면 심각한 오류가 발생하고 UncaughtException... 메시지가 출력됩니다.
【예시】 프로그램에서 예외를 포착하려면 try catch 및 throw를 사용하세요.
<?php try{ $err = '抛出异常信息,并跳出 try 语句块'; if(is_dir('./test')){ echo '这里是一些可能会发生异常的代码'; }else{ throw new Exception($err, 12345); // 抛出异常 } echo '上面抛出异常的话,这行代码将不会执行,转而执行 catch 中的代码。<br>'; }catch(Exception $e){ echo '捕获异常:'.$e->getMessage().'<br>错误代码:'.$e->getCode().'<br>'; } echo '继续执行 try catch 语句之外的代码'; ?>
실행 결과는 다음과 같습니다.
捕获异常:抛出异常信息,并跳出 try 语句块 错误代码:12345 继续执行 try catch 语句之外的代码
샘플 코드의 try 문 블록에서 현재 디렉터리에 test라는 디렉터리가 있는지 확인해 보세요. 이 디렉터리가 없으면 해당 디렉터리에 있는 코드를 실행합니다. 7번째 줄이 실행됩니다. throw 키워드는 예외를 발생시킵니다. 이 예외는 new 키워드를 통해 생성된 Exception 클래스의 객체로, 객체는 $err 오류 메시지와 오류 코드 12345로 초기화되므로 나중에 예외가 발생했을 때 이 정보를 얻을 수 있습니다(11번째 줄). 암호).
예외가 발생하면 try 문 블록의 나머지 코드는 더 이상 실행되지 않습니다. 프로그램 흐름은 해당 catch 문 블록으로 전송되어 실행되며, 마지막으로 호출을 통해 오류 정보와 코드가 출력됩니다. Exception 객체를 통한 멤버 함수.
추천 학습: "
PHP 비디오 튜토리얼"
위 내용은 PHP에서 오류 및 예외를 처리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!