本文簡單記錄一下關於php中的 Try, throw 和 catch 的用法,後面有時間再做一個詳細的解析。
Try - 使用異常的函數應該位於 "try" 代碼塊內。如果沒有觸發異常,則代碼將照常繼續執行。但是如果異常被觸發,會拋出一個
異常。
Throw - 這裡規定如何觸發異常。每一個 "throw" 必須對應至少一個 "catch"
Catch - "catch" 代碼塊會捕獲異常,並創建一個包含異常信息的對象
讓我們觸發一個異常:
<?php //創建可拋出一個異常的函數 function checkNum($number){ if($number>1){ throw new Exception("Value must be 1 or below"); } return true; } //在 "try" 代碼塊中觸發異常 try{ checkNum(2); //捕獲異常 }catch(Exception $e){ echo 'Message: ' .$e->getMessage(); }
上面代碼將獲得類似這樣一個錯誤:
Message: Value must be 1 or below
例子解釋:
上面的代碼拋出了一個異常,並捕獲了它:
創建 checkNum() 函數。它檢測數字是否大於 1。如果是,則拋出一個異常。
在 "try" 代碼塊中調用 checkNum() 函數。
checkNum() 函數中的異常被拋出
"catch" 代碼塊接收到該異常,並創建一個包含異常信息的對象 ($e)。
通過從這個 exception 對象調用 $e->getMessage(),輸出來自該異常的錯誤消息,不過,為了遵循“每個 throw 必須對應一個
catch 的原則,可以設置一個頂層的異常處理器來處理漏掉的錯誤。