參照網上資料大多是java的解釋,貌似php的異常處理過程跟java差不多
java中的Object繼承結構如下:
Object---->Throwable-------->| Exception ----> RuntimeException
| Error
Error都是unchecked類型 Exception分爲checked 與 unchecked類型
且把異常與錯誤都當作程序運行不正常的現象來看待
如果區分異常與錯誤的話
異常:非致命 try{}catche(Exception e){} 執行中的try模塊是測試運行,代碼在運行過程中出現錯誤(非致命錯誤)執行catche
異常的作用類似與下面的這些代碼
if(mysql_connect('127.0.0.1','root','321321'))
{
echo '連接數據庫成功';
// other code...
}
else
{
echo '連接數據庫錯誤';
return false;
}
使用異常處理的情況可以很輕鬆的處理異常情況 如下面的代碼可以一次性處理很多的異常情況
try
{
mysql_connect('127.0.0.1','root','321321');
// other code you want to execute
}catche(Exception $e){
print_r($e);
}
錯誤:致命的 一般都是程序語法錯誤或者用戶級別的提示錯誤
錯誤與異常中都分爲 checked與unchecked
checked 是可以讓用戶處理的 unchecked是不能被處理的
php中 Exception ,用戶級別的錯誤可被用戶處理 (client code) 其他的錯誤是不能被用戶處理的
java中還有個 RuntimeException 是不能被用戶處理的 這是運行級別的異常