이 글은 주로 PHP 예외 처리의 정의와 사용법을 소개합니다. PHP 예외 처리의 정의와 사용법, 관련 주의 사항을 좀 더 자세히 분석하여 도움이 필요한 분들에게 도움이 되었으면 좋겠습니다.
<?php //php5提供了基本的异常处理类,可直接使用 ,不需要自己再定义 // class Exception // { // protected $message = 'Unknown exception'; // 异常信息 // protected $code = 0; // 用户自定义异常代码 // protected $file; // 发生异常的文件名 // protected $line; // 发生异常的代码行号 // function __construct($message = null, $code = 0); // final function getMessage(); // 返回异常信息 // final function getCode(); // 返回异常代码 // final function getFile(); // 返回发生异常的文件名 // final function getLine(); // 返回发生异常的代码行号 // final function getTrace(); // backtrace() 数组 // final function getTraceAsString(); // 已格成化成字符串的 getTrace() 信息 // /* 可重载的方法 */ // function __toString(); // 可输出的字符串 // } ?>
<?php //定义一个顶级异常处理 function my_exception($e){ echo "我是顶级异常处理".$e->getMessage(); } //修改默认的顶级异常处理函数(器) set_exception_handler("my_exception"); //我们使用异常机制 try{ addUser("shunping"); updateUser("xiaoming1"); } //catch用来 捕获异常, Exception 是异常类(是php定义好一个类) catch(Exception $e){ //返回异常信息 echo "返回异常信息(失败信息) =".$e->getMessage()."<br/>"; echo "返回异常代码 =".$e->getCode()."<br/>"; echo "返回发生异常的文件名 =".$e->getFile()."<br/>"; echo "返回发生异常的代码行号 =".$e->getLine()."<br/>"; //echo " =".$e->getTrace()."<br/>"; // backtrace() 数组 //可以继续抛出,这时将会启动php默认的异常处理器来处理 //你也可以自己定义一个顶级异常处理器,对其进行处理 throw $e; } function addUser($username){ if($username=="shunping"){ //添加ok echo "ok1"; }else{ //添加error //抛出异常. throw new Exception("添加失败"); } } function updateUser($username){ if($username=="xiaoming"){ //正常修改 echo "ok2"; }else{ //平抛出异常 throw new Exception("修改失败"); } } ?>
비정상적인 사용에 대한 주의사항:
위의 사례를 통해
try{ //代码 }catch(Exception $e){ //对异常处理 }
를 사용하면 오류를 보다 효과적으로 제어할 수 있음을 알 수 있으므로 개발 시 광범위하게 사용됩니다.
1. 예외가 발생하면 try{} 블록의 후속 코드가 계속 실행되지 않습니다.
2. 예외가 발생했지만 이를 포착하지 못한 경우 가 Uncaught Exception을 표시합니다.( System.)<code>Uncaught Exception.(系统.)<br>
3. 当catch一个异常,你可以处理,也可以不处理,不处理就可以throw new Exception("信息");
3. 예외를 처리할 수도 있고 안 할 수도 있습니다. 그냥 처리하지 마세요
throw new Exception("information");
4. 예외 클래스를 사용자 정의할 수 있습니다
class MyException extends Exception { }5. 여러 개의 catch 코드 블록을 사용하여 다양한 유형의 예외를 잡을 수도 있습니다
try{ //代码.... //第一句话 //第二句话 }catch(PDOException $e){ // }catch(Exception $e){ | }6. 또한 간단히 예외 캡처코드 설명을 사용할 수도 있습니다.
예외 규칙
예외 처리가 필요한 코드는 잠재적인 예외를 포착하기 위해 try 코드 블록에 배치되어야 합니다.
다양한 종류의 예외를 포착하려면 여러 개의 catch 블록을 사용하세요. try 블록 내의 catch 블록에서 예외가 발생(다시 발생)될 수 있습니다. 간단히 말하면, 예외가 발생하면 이를 잡아야 합니다. 또는 최상위 예외 처리기를 사용하십시오.
발생하지 않으면 예외가 발생하더라도 catch되거나 처리되지 않습니다.
관련 권장 사항:
NodeJs 데이터베이스 예외 처리 분석
위 내용은 PHP 예외 처리란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!