PHP的Try, throw 和 catch

Try, throw 和 catch

  1. Try - 使用異常的函數應該位於 "try" 代碼塊內。若是沒有觸發異常,則代碼將照常繼續執行。可是若是異常被觸發,會拋出一個異常。php

  2. Throw - 這裏規定如何觸發異常。每個 "throw" 必須對應至少一個 "catch"函數

  3. Catch - "catch" 代碼塊會捕獲異常,並建立一個包含異常信息的對象this

讓咱們觸發一個異常:spa

<?php 
//建立可拋出一個異常的函數 
function checkNum($number)  
{  
if($number>1)   {   
throw new Exception("Value must be 1 or below");   
}  
return true;  
}  
//在 "try" 代碼塊中觸發異常 
try  {  
checkNum(2);  
//If the exception is thrown, this text will not be shown  echo 'If you see this, the number is 1 or below';  }  
//捕獲異常
 catch(Exception $e)  
{  echo 'Message: ' .$e->getMessage();  } 
?>

上面代碼將得到相似這樣一個錯誤:code

Message: Value must be 1 or below

例子解釋:

上面的代碼拋出了一個異常,並捕獲了它:orm

  1. 建立 checkNum() 函數。它檢測數字是否大於 1。若是是,則拋出一個異常。對象

  2. 在 "try" 代碼塊中調用 checkNum() 函數。get

  3. checkNum() 函數中的異常被拋出it

  4. "catch" 代碼塊接收到該異常,並建立一個包含異常信息的對象 ($e)。io

  5. 經過從這個 exception 對象調用 $e->getMessage(),輸出來自該異常的錯誤消息

不過,爲了遵循「每一個 throw 必須對應一個 catch」的原則,能夠設置一個頂層的異常處理器來處理漏掉的錯誤。

轉載
相關文章
相關標籤/搜索