1.錯誤的捕獲方式
在捕獲了異常之後什麼都不做,相當於忽略了這個異常。千萬不要使用空的catch塊,空的catch塊意味著你在程式中隱藏了錯誤和異常,並且很可能導致程式出現不可控的執行結果。如果你非常肯定捕獲到的異常不會以任何方式對程式造成影響,最好用log日誌將該異常進行記錄,以便日後方便更新和維護.
你的**中最好不要出現這類的異常**,真出現異常了,異常資訊列印根本不會出現在日誌檔案裡
這種異常列印也是很智障的,雖然最終異常資訊被列印了,但是卻沒有詳細的異常資訊記錄
2.正常的列印方法
3.當你想要想要在發生異常時,終止程式繼續執行下去,可以寫好的業務異常類繼承runtimeexception
public
class
busines***ception
extends
runtimeexception
public
busines***ception(string message)
public
busines***ception(string message, throwable cause)
public
busines***ception(throwable cause)
}
測試類:
import org.slf4j.logger;
import org.slf4j.logge***ctory;
public
class
testexception catch (exception e) finally
system.out.println("outside----------");}}
執行結果:
可以看出:system.out.println(「outside———-「);並沒有往下執行
4.業務異常處理類,正確捕獲異常
try catch (bizexception e) catch (exception ex)
log.info(constants.reponse_msg, json.tojsonstring(response));
return response;
}
注意不要遺漏捕獲exception非執行期異常,這點很重要。有人在這裡可能會問,業務異常不是繼承了exception了嘛,為什麼不直接只捕獲乙個exception呢,其實這裡主要是作為乙個區分,專案中,我們可把控的基本都是業務異常,那種不可把控的自然是exception,我們也可以稱做系統異常,專案是不能預知它的出現的,所以統一歸為一類,並且code也唯 編碼習慣之異常處理
對於大型it系統,最怕的事情第一是系統出現了異常我不知道,等問題鬧大了使用者投訴了才知道出問題了。第二就是出了問題之後無法找到出錯原因。針對這2個問題,說說我們專案組是怎麼樣規定異常處理的。再次宣告我的觀點,我這系列貼裡面,沒有什麼技術點,都是一些程式設計的經驗之談,而且是建立在專案背景是大部分 都...
我的編碼習慣 異常處理
原文出處 曉風輕 程式設計師你為什麼這麼累?對於大型it系統,最怕的事情第一是系統出現了異常我不知道,等問題鬧大了使用者投訴了才知道出問題了。第二就是出了問題之後無法找到出錯原因。針對這2個問題,說說我們專案組是怎麼樣規定異常處理的。再次宣告我的觀點,我這系列貼裡面,沒有什麼技術點,都是一些程式設計...
java 編碼習慣整理
為了防止偶發性的nullpointerexception異常,我們通常將string放置在equals 函式的左邊來實現字串比較,如下 bad if variable.equals literal good if literal equals variable 這是隨便用腦子想想就可以做的事,從ba...