溫習了一下 php 的異常處理機制:
php 5 新增了類似於其它語言的異常處理模組。在 php **中所產生的異常可被 throw 語句丟擲並被 catch 語句捕獲。需要進行異常處理的**都必須放入 try **塊內,以便捕獲可能存在的異常。每乙個 try 至少要有乙個與之對應的 catch。使用多個 catch 可以捕獲不同的類所產生的異常。當 try **塊不再丟擲異常或者找不到 catch 能匹配所丟擲的異常時,php **就會在跳轉到最後乙個 catch 的後面繼續執行。當然,php 允許在 catch **塊內再次丟擲(throw)異常。
當乙個異常被丟擲時,其後(指丟擲異常時所在的**塊)的**將不會繼續執行,而 php 就會嘗試查詢第乙個能與之匹配的 catch。如果乙個異常沒有**獲,而且又沒用使用set_exception_handler()作相應的處理的話,那麼 php 將會產生乙個嚴重的錯誤,並且輸出uncaught exception... (未捕獲異常)的提示資訊。
例 20-1. 丟擲乙個異常
<?php擴充套件 php 內建的異常處理類:try catch (exception $e)
// 繼續執行
echo 'hello world';
?>
使用者可以用自定義的異常處理類來擴充套件 php 內建的異常處理類。以下的**說明了在內建的異常處理類中,哪些屬性和方法在子類中是可訪問和可繼承的。以下這段**只為說明內建異常處理類的結構,它並不是一段有實際意義的可用**。
例 20-2. 內建的異常處理類
<?php如果使用自定義的類來擴充套件內建異常處理類,並且要重新定義建構函式的話,建議同時呼叫parent::__construct()來檢查所有的變數是否已被賦值。當物件要輸出字串的時候,可以過載__tostring()並自定義輸出的樣式。class exception
?>
例 20-3. 擴充套件 php 內建的異常處理類
<?php/*** 自定義乙個異常處理類
*/class myexception extends exception
// 自定義字串輸出的樣式
public function __tostring() ]: \n";
}public function customfunction()
}/**
* 建立乙個用於測試異常處理機制的類
*/class testexception
}}// 例子 1
try catch (myexception $e) catch (exception $e)
// 執行後續**
var_dump($o);
echo "\n\n";
// 例子 2
try catch (myexception $e) catch (exception $e)
// 執行後續**
var_dump($o);
echo "\n\n";
// 例子 3
try catch (exception $e)
// 執行後續**
var_dump($o);
echo "\n\n";
// 例子 4
try catch (exception $e)
// 執行後續**
var_dump($o);
echo "\n\n";
?>
PHP異常處理
php 4 require once cmd php4 command.php class commandmanager php if file exists path require once path if class exists cmd ret new cmd if is a ret,com...
PHP 異常處理
異常 exception 用於在指定的錯誤發生時改變指令碼的正常流程。php 5 提供了一種新的物件導向的錯誤處理方法。異常處理用於在指定的錯誤 異常 情況發生時改變指令碼的正常流程。這種情況稱為異常。當異常被觸發時,通常會發生 我們將展示不同的錯誤處理方法 當異常被丟擲時,其後的 不會繼續執行,p...
php異常處理
全面的知識請參考 下面是自己的一點認識 php的異常基本是這樣子的 class customexception extends exception email someone example.com try catch exception e catch customexception e 如果僅僅...