卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java為什么要拋出異常 java異常從業(yè)務(wù)層集中拋出,是不是每個(gè)控制層方法都要trycatch?

java異常從業(yè)務(wù)層集中拋出,是不是每個(gè)控制層方法都要trycatch?控制層中發(fā)生的異常有兩種情況:一種是意料之內(nèi)的,可預(yù)估的。這種異常需要捕獲異常后做出“嘗試修復(fù)”,例如在查詢用戶信息rpc的過程

java異常從業(yè)務(wù)層集中拋出,是不是每個(gè)控制層方法都要trycatch?

控制層中發(fā)生的異常有兩種情況:

一種是意料之內(nèi)的,可預(yù)估的。這種異常需要捕獲異常后做出“嘗試修復(fù)”,例如在查詢用戶信息rpc的過程中發(fā)生異常,包括什么500啊,404啊,這些對于客戶端來說基本不用重試,可以通過清晰的錯(cuò)誤碼告知,相反,超時(shí)等情況則可以通知客戶端稍后重試,通過不同的錯(cuò)誤碼引導(dǎo)客戶端進(jìn)行不同的操作。

另一種情況則是控制層本身就沒考慮到的情況。這種情況盲目的try/catch沒多大意義,通常會(huì)在框架層面做統(tǒng)一處理,包括記錄異常信息,以及優(yōu)雅的返回失敗。

最后,對于try/catch的使用,我們不是并不是為了看不見異常,更多的是考慮我捕獲后能做什么,能否嘗試解決這個(gè)問題,如果不行,拋給上層,能否記錄并告警,如果沒考慮清楚這個(gè)問題,很容易犯一個(gè)大忌(吞掉異常)。