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 是不能被用戶處理的。這個是運行級別的異常
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。
這是面試題目的專業回答。
error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。 exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。