PHP異常處理定義與使用方法
PHP語法吸收了C語言、Java和Perl的特點,利於學習,使用廣泛,主要適用於Web開發領域。下面是小編分享的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. 如果有一個異常發生,但是你沒有catch 捕獲,則提示一個Uncaught Exception.(系統.)
3. 當catch一個異常,你可以處理,也可以不處理,不處理就可以
throw new Exception("信息");
4. 你可以自定義異常類
class MyException extends Exception {
}
5. 使用多個 catch 代碼塊可以捕獲不同種類的異常
try{
//代碼....
//第一句話
//第二句話
}catch(PDOException $e){
//
}catch(Exception $e){
|
}
6. 也可簡單使用 Exception 捕獲
代碼說明:
<?php
//定義了一個異常
class MyException1 extends Exception{
}
class MyException2 extends Exception{
}
function A(){
throw new MyException1("a");
}
function B(){
throw new MyException2("b")
}
function C(){
try{
A();//拋出MyException1
B();//拋出MyException2
}catch(Exception1 $e1){
$e1->getMessage();
}catch(Exception2 $e2){
$e2->getMesage();
}
}
?>
異常的規則
需要進行異常處理的代碼應該放入 try 代碼塊內,以便捕獲潛在的異常。
每個 try 或 throw 代碼塊必須至少擁有一個對應的 catch 代碼塊。
使用多個 catch 代碼塊可以捕獲不同種類的異常。
可以在 try 代碼塊內的 catch 代碼塊中拋出(再次拋出)異常。
簡而言之:如果拋出了異常,就必須捕獲它。或者使用頂級異常處理器處理。
如果不拋,即使有異常也不會捕獲,不會處理
相關文章
-
PHP5異常處理的方法
【提要】本篇《PHP5異常處理的方法是什麼》特別爲需要方法編程學習的朋友收集整理的,僅供參考。內容如下:PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可 -
PHP5異常處理的方法是什麼
PHP具有非常強大的功能,所有的CGI的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統。最重要的是PHP可以用C、C++進行程序的擴展!以下是小編爲大家搜索整理的PHP5異常處理的方法是什麼,歡迎閱讀!更多精彩內容 -
php使用pack處理二進制文件的方法
文章主要介紹了php使用pack處理二進制文件的方法,需要的朋友可以參考下讀寫二進制文件可以使用pack和unpack函數。天要處理一個二進制文件的問題,所以需要用一下,特意瞭解一下pack的用法,unpack用法與此類似。簡單來說,pa -
PHP的自定義模板引擎使用方法
本文將詳細介紹PHP中的模板引擎。具有很好的參考價值。下面跟着小編一起來看下吧。在大多數的項目組中,開發一個Web程序都會出現這樣的流程:計劃文檔提交之後,前端工程師製作了網站的外觀模型,然後把它交給後端工程師,它們 -
PHP異常處理辦法
人都會出錯,更何況程序,那麼當PHP異常是該怎麼處理?一起來看看吧!更多消息請關注應屆畢業生網! 擴展 PHP 內置的異常處理類 PHP 5 添加了類似於其它語言的異常處理模塊。在 PHP 代碼中所產生的異常可被 throw 語 -
php自定義錯誤處理用法實例
php自定義錯誤處理用法,實例分析了php通過自定義函數進行錯誤處理的`技巧,需要的朋友可以參考下.本文實例講述了php自定義錯誤處理用法。分享給大家供大家參考。具體如下:<?phperror_reporting(E_ALL);function ErrHan -
使用photoshop處理出文藝效果的方法
我們在進行p圖的時候往往會想要製造出文藝風,那麼如何使用photoshop處理出文藝效果呢,通過下面的閱讀你會有所收穫。後期分析:還是那句話,不是每一種色調都適合於任何畫面,在拍攝玩一組片子之前以及之後我們都應該有所想法 -
PHP使用方法之phpize
安裝(fastcgi模式)的時候,常常有這樣一句命令:複製代碼 代碼如下:/usr/local/webserver/php/bin/phpize一、phpize是幹嘛的?phpize是什麼?phpize是用來擴展php擴展模塊的,通過phpize可以建立php的外掛模塊比如你想在原來編譯 -
PHP中date函數常用時間處理方法
echo "今天:"("Y-m-d")."";echo "昨天:"("Y-m-d",strtotime("-1 day")), "";echo "明天:"("Y-m-d",strtotime("+1 day")). "";echo "一週後:"("Y-m-d",strtotime("+1 week")). "";echo "一週零兩天四小時兩秒後:"("Y- -
如何處理PHP異常
PHP獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。以下是小編爲大家搜索整理的如何處理PHP異常,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!/**