PHP 異常處理

2022-03-16 06:01:08 字數 1819 閱讀 9506

溫習了一下 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

try catch (exception $e)

// 繼續執行

echo 'hello world';

?>

擴充套件 php 內建的異常處理類:

使用者可以用自定義的異常處理類來擴充套件 php 內建的異常處理類。以下的**說明了在內建的異常處理類中,哪些屬性和方法在子類中是可訪問和可繼承的。以下這段**只為說明內建異常處理類的結構,它並不是一段有實際意義的可用**。

例 20-2. 內建的異常處理類

<?php

class exception

?>

如果使用自定義的類來擴充套件內建異常處理類,並且要重新定義建構函式的話,建議同時呼叫parent::__construct()來檢查所有的變數是否已被賦值。當物件要輸出字串的時候,可以過載__tostring()並自定義輸出的樣式。

例 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 如果僅僅...