您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“php中如何使用try catch語句”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“php中如何使用try catch語句”這篇文章吧。
php中,try catch語句配合throw關鍵字可以用來捕獲程序中的異常,程序代碼中所產生的異常可以被try的throw語句拋出并被catch語句捕獲;語法“try{//代碼}catch(Exception $e){//輸出錯誤}”。
本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦
在 PHP 中想要捕獲程序中的異常,需要使用 try catch 語句和 throw 關鍵字來實現。try catch 語句和流程控制語句類似,所以可以通過 try catch 語句來實現一種另類的條件選擇結構,而 throw 關鍵字則可以拋出一個異常。try catch 語句的語法格式如下:
try{ // 可能出現異常或錯誤的代碼,比如文件操作、數據庫操作等 }catch(Exception $e){ // $e 為一個異常類的對象 // 輸出錯誤信息 }
需要進行異常處理的代碼都必須放入 try 代碼塊內,以便捕獲可能存在的異常。每一個 try 至少要有一個與之對應的 catch。使用多個 catch 可以捕獲不同的類所產生的異常。
當 try 代碼塊不再拋出異常或者找不到 catch 能匹配所拋出的異常時,PHP 代碼就會在跳轉到最后一個 catch 的后面繼續執行。
在 PHP 代碼中所產生的異常可以被 throw 語句拋出并被 catch 語句捕獲。當然,PHP 允許在 catch 代碼塊內再次拋出(throw)異常。
當一個異常被拋出時,其后的代碼不會再繼續執行,而 PHP 就會嘗試繼續查找第一個能與之匹配的 catch。如果一個異常沒有被捕獲,而且又沒用使用 set_exception_handler() 作相應的處理的話,將會產生一個嚴重的錯誤,并且輸出 UncaughtException...(未捕獲異常)的提示信息。
【示例】使用 try catch 和 throw 捕獲程序中的異常。
<?php try{ $err = '拋出異常信息,并跳出 try 語句塊'; if(is_dir('./test')){ echo '這里是一些可能會發生異常的代碼'; }else{ throw new Exception($err, 12345); // 拋出異常 } echo '上面拋出異常的話,這行代碼將不會執行,轉而執行 catch 中的代碼。<br>'; }catch(Exception $e){ echo '捕獲異常:'.$e->getMessage().'<br>錯誤代碼:'.$e->getCode().'<br>'; } echo '繼續執行 try catch 語句之外的代碼'; ?>
運行結果如下:
捕獲異常:拋出異常信息,并跳出 try 語句塊 錯誤代碼:12345 繼續執行 try catch 語句之外的代碼
示例代碼中,在 try 語句塊中試著判斷當前目錄下是否存在名為 test 的目錄,如果不存在這個目錄,那么就會執行第 7 行的代碼,通過關鍵字 throw 拋出異常。這個異常是一個 Exception 類的對象,通過 new 關鍵字生成,并且用錯誤信息 $err 和錯誤代碼 12345 初始化該對象,以便后面 catch 該異常時(代碼第 11 行),可以獲取這些信息。
一旦拋出異常,那么 try 語句塊中剩下的代碼就不再繼續執行,程序流程轉至相應的 catch 語句塊執行,最終通過 Exception 對象調用其成員函數輸出錯誤信息和代碼。
以上是“php中如何使用try catch語句”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。