PHP 예외 처리 클래스 Exception 사용법에 대한 자세한 설명
예외는 일반적인 프로그램 실행 중에 발생하는 다양한 유형의 오류를 처리하는 데 자주 사용됩니다. 예를 들어, 데이터베이스 연결을 할 때 데이터베이스 연결 실패를 처리해야 합니다. 예외를 사용하면 프로그램의 내결함성을 향상시켜 애플리케이션을 더욱 안정적이고 강력하게 만들 수 있습니다.
예외 사용
PHP5는 다른 언어와 유사한 예외 처리 모듈을 추가합니다. PHP 코드에서 생성된 예외는 throw 문에 의해 발생되고 catch 문에 의해 포착될 수 있습니다. 예외 처리가 필요한 코드는 가능한 예외를 포착하기 위해 try 코드 블록에 배치되어야 합니다. 각 시도는 하나 이상의 catch 블록에 해당합니다. 다양한 클래스에서 생성된 예외를 포착하려면 여러 catch를 사용하세요. try 블록이 더 이상 예외를 발생시키지 않거나 발생한 예외와 일치하는 catch가 없으면 PHP 코드는 마지막 catch로 점프한 후 계속 실행됩니다. 물론, PHP는 catch 블록 내에서 예외가 다시 발생하도록 허용합니다.
사전 정의된 예외ExceptionException 클래스는 모든 예외의 기본 클래스입니다. Exception 클래스를 파생하여 사용자 정의 예외의 목적을 달성할 수 있습니다. 다음 목록에는 Exception에 대한 기본 정보가 나열되어 있습니다.
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 ) //异常克隆 }
Exception을 이해한 후, 예외 클래스를 확장하여 사용자 정의 예외를 구현해 보겠습니다.
function connectToDatabase() { if(!$link = mysql_connect("myhost","myuser","mypassw","mybd")) { throw new Exception("could not connect to the database."); } } try { connectToDatabase(); } catch(Exception $e) {echo $e->getMessage(); }
여기서 예외 유형 예외를 발생시키고 catch에서 이 예외를 포착한 다음 마지막으로 "데이터베이스에 연결할 수 없습니다."를 인쇄합니다. 데이터베이스 연결이 실패한 이유에 대한 정보도 표시하고 싶을 수도 있습니다. 다음으로, 예외 클래스를 확장하여 사용자 정의 정보를 구현합니다.
class MyException extends Exception { protected $ErrorInfo; //构造函里处理一些逻辑,然后将一些信息传递给基类 public function construct($message=null,$code=0) { $this->ErrorInfo = '自定义错误类的错误信息'; parent::construct($message,$code); } //提供获取自定义类信息的方法 public function GetErrorInfo() { return $this->ErrorInfo; } /** * *这里还可以添加异常日志,只需在上面的构造函数里调用就可以了 * */ public function log($file) { file_put_contents($fiel,$this->toString(),FILE_APPEND); } } function connectToDatabase() { throw new MyException("ErrorMessage"); } try { connectToDatabase(); } catch(MyException $e) { echo $e->getMessage() . "\n"; echo $e->GetErrorInfo(); }
사용자 정의 예외 처리 함수를 설정합니다. 잡지 못한 예외가 발생할 때 호출되는 함수 이름을 set_Exception_handler의 매개 변수로 지정합니다. 이 함수는 set_Exception_handler()를 호출하기 전에 정의되어야 합니다. 이 함수는 throw된 예외 개체인 하나의 매개 변수를 허용합니다. 이는 위에서 언급한 예외 로깅 처리를 개선하는 데 사용될 수 있습니다.
function ExceptionLogger($exception) { $file='ExceptionLog.log'; file_put_contents($fiel,$exception->toString(),FILE_APPEND); } set_exception_handler(ExceptionLogger);
1.3. PHP에서는 catch 코드 블록 내에서 예외가 다시 발생하도록 허용합니다.
try { #code... } catch(Exception $e) { if($e->getCode() == 999) { #进行一些操作 } else { throw $e; } }
Summary
예외 기능은 매우 강력하지만, 이는 프로젝트에서 예외 메커니즘, 특히 많은 수의 예외 로그를 사용하는 메커니즘을 함부로 남용할 수 있다는 의미는 아닙니다. 이로 인해 시스템 오버헤드가 크게 증가하고 응용 프로그램의 성능을 저하시킵니다. 오류 코드를 사용하면 오류 메시지를 쉽게 관리할 수 있습니다. 오류 메시지가 여러 번 발생하는 경우 오류 코드를 사용하는 것이 과학적인 선택입니다. 오류 코드를 사용하여 오류 메시지를 여러 언어로 표시할 수도 있습니다.
위 내용은 PHP 예외 처리 클래스 Exception 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는
