亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java健壯性的方法有哪些

發布時間:2021-12-27 17:46:42 來源:億速云 閱讀:131 作者:iii 欄目:大數據

本篇內容主要講解“Java健壯性的方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java健壯性的方法有哪些”吧!

一、進行統一的業務處理響應

根據螞蟻金服開放平臺的標準返回,一個 response 至少應當有4個返回值。

1、isSuccess  調用是否成功

2、data           返回的響應數據

3、errorCode  錯誤碼

4、errorMsg    錯誤信息

這就要求我們的接口要有標準的統一的 response ,那怎么實現呢?

1、Spring 切面, JDK 動態代理,Cglib 動態代理等用代理類實現

2、匿名子類,使用一個公共的 Executor 來負責處理所有的請求。

上面兩種模式都可以實現標準的 response 的封裝,那么具體要封裝哪些東西呢?其實最主要的就是統一的 try catch,防止出現任何的 500 錯誤給到調用方。

------ 為什么要在最外層去完成呢?------

因為 500 錯誤對于調用方來說是致命而且是毫無價值的,無論調用方是前端還是其他的業務系統

------ 設定統一的錯誤碼 ------

參數錯誤           PARAMETER_ERROR

數據庫錯誤       DATABASE_ERROR

外部系統錯誤   OUTER_SYSTEM_ERROR

如果有了上面的這些錯誤碼以及錯誤信息,業務方至少可以告知用戶究竟發生了什么事,也可以設定一些列的告警以及自動化運維的方式來處理這些錯誤。

二、參數檢查

在進行真正的邏輯處理前,應當對入參進行一系列的校驗,以保持后續業務處理邏輯的輕量,這也是 fast fail 思想的指導,有錯誤盡早結束處理。

具體是怎樣的呢?我們假設參數為 m.

if( null == m ){return ;}

進行空判斷,防止后續滴啊用m發生 NullPointerException,但這里也不建議拋出NPE,因為看到日志也會很迷惑。

if( StringUtils.isEmpty( m ) ){return ;}

字符串是否為空串

if( CollectionUtils.isEmpty.isEmpty( m ) ){return ;}

集合是否為空或者null

try{

    JSON.parseObject( m );

    return true;

}

catch(JSONExceptin e){

    return false;

}

判斷字符串是否為 JSON 格式

三、重試機制

對于特定的外部系統錯誤,可以嘗試多次重試這種策略,當然這也是簡歷在對方的服務是冪等的前提下。這樣做在某些網絡不穩定的情況下可以提高響應成功率。

四、冪等機制

什么叫冪等?意思就是  無論何時何處何人,只要是先攻的請求,就應當有相同的響應,直到到達終態。

這個原則并不關注上一次的執行結果,企鵝本次結果不應當因為上一次請求的部分成功或者失敗而導致某些中間狀態不一致導致請求失敗。

五、Lambda

Optionl.of( target )

            .getOrElse( new ArrayList() )

            .filter( Object::NotNull)

            .forEach( () -> {} )

這種寫法可以確保絕大部分的異常不出現,特別是在對于集合進行處理的時候,因為集合中只要有其中一個值是會導致程序失敗的,整個程序都會報錯。這樣寫因為對數據做了比較多的檢查和兼容,所以出現錯誤的概率會比較低,但也會有一個弊端,就是當這樣的程序都出現異常的時候,開發者一般不知從何查起,要定位出是哪行數據就已經很費勁了。

到此,相信大家對“Java健壯性的方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蕉岭县| 合山市| 滨海县| 贞丰县| 巍山| 南充市| 莱阳市| 山东省| 潢川县| 东丰县| 泾川县| 大安市| 吉木萨尔县| 梧州市| 陈巴尔虎旗| 荔波县| 彭阳县| 获嘉县| 蕉岭县| 新闻| 瑞金市| 若尔盖县| 凤翔县| 会宁县| 北宁市| 凤城市| 抚松县| 迭部县| 秦安县| 遂宁市| 郧西县| 温州市| 运城市| 鹤庆县| 荔浦县| 安达市| 芮城县| 灵山县| 滦平县| 武鸣县| 沁源县|