java 使用異常的好處總結(jié)
成都創(chuàng)新互聯(lián)致力于網(wǎng)站建設(shè),網(wǎng)站制作設(shè)計,營銷網(wǎng)頁定制網(wǎng)站開發(fā),外貿(mào)網(wǎng)站制作,企業(yè)網(wǎng)站建設(shè),小程序設(shè)計,網(wǎng)站SEO優(yōu)化,網(wǎng)站設(shè)計制作案例豐富,是成都做網(wǎng)站公司和建站公司,歡迎咨詢。
一、分析
Java異常處理機制確實比較慢,這個“比較慢”是相對于諸如String、Integer等對象來說,單單從對象的創(chuàng)建上來說,new一個IOException會比String慢5倍,這從異常的處理機制上也可以解釋:因為它執(zhí)行fillStackTrace方法,要記錄當(dāng)前棧的快照,而String類則是直接申請創(chuàng)建一個內(nèi)存創(chuàng)建對象,異常類慢一籌也在所難免。
二、場景
我們知道異常是主邏輯的例外邏輯,舉個例子來說,比如我們能在馬路上走(這時主邏輯),突然開過一輛車,我要避讓(這是受檢異常,必須處理),繼續(xù)走著,不然一架飛機從我頭頂飛過(非受檢異常),我們可以選擇繼續(xù)行走(不捕捉),也可以選擇指責(zé)噪音污染(捕捉,主邏輯的補充處理),在繼續(xù)走著,突然一顆流星砸下來,這就沒有選擇,屬于錯誤,不能做任何處理。
任何一個事物的處理都可能產(chǎn)生非預(yù)期的結(jié)果,問題是需要以何種手段來處理,如果不使用異常就需要依靠返回值的不同來進行處理了,這嚴(yán)重嚴(yán)重失去了面向?qū)ο蟮娘L(fēng)格。
例如,用戶登錄的用例,就會在”例外事件“中說明”連續(xù)3次登陸失敗即鎖定用戶賬號“,這就是登陸事件的一個異常處理,具體到我們的程序中就是:
<span > public voidlogin(){ try{ //正常登陸 }catch(InvalidLoginExceptionlie){ //用戶名無效 }catch(InvalidPasswordExceptionpe){ //密碼錯誤的異常 }catch(TooMouchLoginExceptiontmle){ //多次登陸失敗的異常 } }</span>
如此設(shè)計則可以讓我們的login方法更符合實際的處理邏輯,同時使主邏輯(正常登陸,try代表塊)更加清晰。使用異常有很多優(yōu)點,比如可讓正常代碼和異常代碼分離,能快速查找問題(棧信息快照)等,但是異常有一個缺點:性能比較慢。
但是我們不能因為性能問題而放棄使用異常,難道我們的系統(tǒng)連如此微小的性能消耗都不允許嗎?
三、建議
性能問題不是拒絕異常的借口
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
網(wǎng)站欄目:java使用異常的好處總結(jié)
分享地址:http://jinyejixie.com/article42/jjejec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、域名注冊、定制網(wǎng)站、動態(tài)網(wǎng)站、商城網(wǎng)站、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)