error與exception的區別查閱網上資料大多是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 是不能被用戶處理的。這個是運行級別的異常