課程
/后端開發(fā)
/Java
/Spring Boot進階之Web進階
不建議用異常做流程控制吧,剛進公司的時候coding style上就有一條不要用異常做流程控制,會影響性能,但具體會影響多少我也沒有測試過,希望有經(jīng)驗的兄弟可以解釋一下?
2017-10-13
源自:Spring Boot進階之Web進階 2-5
正在回答
我覺得關鍵是對異常的理解~數(shù)據(jù)格式不符合要求算是一種異常,那么年齡不在期望范圍內(nèi)算不算異常呢?如何可以接受這種情況,并做出相應業(yè)務處理,那么應該算是流程控制(畢竟有后續(xù)流程等著它嘛),但是如果系統(tǒng)根本不想處理這種情況,也就是沒有后續(xù)的業(yè)務邏輯了,那么應該就算是異常了吧。
老師的這種處理,真的看起來像是流程控制,但是,也可以將其理解為異常吧。
至于題主的問題,異常對程序性能的影響,應該和Java虛擬機對異常的處理有關,至于細節(jié),我還得學習一波。
記得effectiveJava上有說過這個問題,可以去看一下。程序出現(xiàn)問題拋出異常也比較符合面向對象的一個概念。個人認為底層采用拋出不同類型的異常對出現(xiàn)的問題進行一個詳細的劃分供上層調用者處理是一個很好的處理方式。而你提到的不要用異常做流程控制指的是有些問題可以通過判斷對不同的情況進行不同流程的處理。而不是說當程序異常時認為是另一種情況然后在catch中做大量的業(yè)務邏輯處理。這樣是不對的。
舉報
《2小時學習Spring Boot》之進階教程,針對Web方面的相關技巧
1 回答用拋出異常來控制流程這樣好么
1 回答為啥我把異常拋出了,網(wǎng)頁端沒顯示任何數(shù)據(jù),控制臺也不顯示
2 回答code用常量類聲明常量處理好還是用枚舉好?
1 回答空指針異常
3 回答為什么要這樣做?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關注慕課網(wǎng)微信公眾號
2018-10-05
我覺得關鍵是對異常的理解~數(shù)據(jù)格式不符合要求算是一種異常,那么年齡不在期望范圍內(nèi)算不算異常呢?如何可以接受這種情況,并做出相應業(yè)務處理,那么應該算是流程控制(畢竟有后續(xù)流程等著它嘛),但是如果系統(tǒng)根本不想處理這種情況,也就是沒有后續(xù)的業(yè)務邏輯了,那么應該就算是異常了吧。
老師的這種處理,真的看起來像是流程控制,但是,也可以將其理解為異常吧。
至于題主的問題,異常對程序性能的影響,應該和Java虛擬機對異常的處理有關,至于細節(jié),我還得學習一波。
2017-10-14
記得effectiveJava上有說過這個問題,可以去看一下。程序出現(xiàn)問題拋出異常也比較符合面向對象的一個概念。個人認為底層采用拋出不同類型的異常對出現(xiàn)的問題進行一個詳細的劃分供上層調用者處理是一個很好的處理方式。而你提到的不要用異常做流程控制指的是有些問題可以通過判斷對不同的情況進行不同流程的處理。而不是說當程序異常時認為是另一種情況然后在catch中做大量的業(yè)務邏輯處理。這樣是不對的。