摘要:網上關于關于異常的使用,也是寥寥無幾。異常處理不能代替簡單的測試,在中,與執行簡單的測試相比,捕獲異常所花費的時間大大超過前者。不要羞于傳遞異常理解未必非要在函數中捕獲異常,也可以將它拋出,由高層次的函數通告用戶發生錯誤。
在php下面的異常,真的一言難盡啊。網上關于php關于異常的使用,也是寥寥無幾。最近在學習java,看到書(java核心編程 卷1)寫關于異常的使用建議,覺得還是不錯。
為什么要使用異常?
傳統的處理方式是返回一個特定的錯誤的答案,調用這個方法的方法對其進行分析。但是并不是在任何情況下都能夠返回一個錯誤編碼。有可能無法明確的將有效數據與無效數據區分。一個返回整形的方法就不能簡單地通過返回-1表示錯誤,因為-1很可能是一個完全合法的結果
突然想到一點,吐個槽:php接收數據,偷點懶,這么寫empty($_GET["a"]) 。但是如果傳過來是0,那么程序就出錯了。好像用mysqli的時候后,會有三個返回值,如果簡單用的empty,也會有問題。
1 異常處理不能代替簡單的測試,在java中,與執行簡單的測試相比,捕獲異常所花費的時間大大超過前者。
理解:不能總是依靠異常來處理問題,如果可以在通過簡單的判斷,就能夠避免。比如,對于分頁,page,size。如果沒有傳,那么可以直接賦值page =1, size = 0;
2 不要過分地細化異常
3 利用異常層次結構
理解:2,3感覺可以放在一起理解,使用合理的異常結構,合理的異常類。這個地方有點像是程序的擴展性,可讀性和效率上的平衡,比如代碼的長度,如果一個函數里面的代碼過長,可以抽出一些內容作為一個方法,再去調用它。
4 不要壓制異常
理解:捕獲到異常而不去處理它。這樣會壓制異常。
5 在檢測錯誤時,苛刻要比放任更好
理解:在有錯誤發生時,盡量還是拋出一個異常比直接拋出一個null或者自定義的類型要好。但是我覺得如果可以用默認值去處理,像1中分頁的例子,而不是讓程序中斷。我覺得這樣在某些情況下,會更好一點。
6 不要羞于傳遞異常
理解:未必非要在函數中捕獲異常,也可以將它拋出,由高層次的函數通告用戶發生錯誤。php好像沒有這種寫法,- -。
如果有理解不正確的地方,希望可以指出。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73461.html
摘要:異常也就是指程序運行時發生錯誤,而異常處理就是對這些錯誤進行處理和控制。有兩個重要的子類異常和錯誤,二者都是異常處理的重要子類,各自都包含大量子類。需要注意的是,一旦某個捕獲到匹配的異常類型,將進入異常處理代碼。 1,異常現象 程序錯誤分為三種:1,編譯錯誤;2,運行時錯誤;3,邏輯錯誤。 編譯錯誤是因為程序沒有遵循語法規則,編譯程序能夠自己發現并且提示我們錯誤的原因和位置,這...
摘要:不受檢查異常為編譯器不要求強制處理的異常,檢查異常則是編譯器要求必須處置的異常。潛在的異常處理器是異常發生時依次存留在調用棧中的方法的集合。當運行時系統遍歷調用棧而未找到合適的異常處理器,則運行時系統終止。異常處理涉及到五個關鍵字,分別是。 概念 程序運行時,發生的不被期望的事件,它阻止了程序按照程序員的預期正常執行,這就是異常。 異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并...
閱讀 564·2023-04-25 16:00
閱讀 1598·2019-08-26 13:54
閱讀 2497·2019-08-26 13:47
閱讀 3402·2019-08-26 13:39
閱讀 1037·2019-08-26 13:37
閱讀 2734·2019-08-26 10:21
閱讀 3534·2019-08-23 18:19
閱讀 1601·2019-08-23 18:02