大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java后端開發(fā)視頻只學(xué)習(xí)需要注意哪幾點(diǎn)

Java后端開發(fā)視頻只學(xué)習(xí)需要注意哪幾點(diǎn)

更新時(shí)間:2020-06-19 12:55:57 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2190次

自定義枚舉類

自定義異常信息

統(tǒng)一返回信息

全局異常處理

01自定義枚舉類

對(duì)于一些我們經(jīng)常返回的錯(cuò)誤信息,我們可以將其抽取出來封裝成公共部分,然后將變化的作為參數(shù)傳入。例如我們?cè)跇I(yè)務(wù)中經(jīng)常要校驗(yàn)?zāi)硞€(gè)字段是否為空,如果為空的話就要返回錯(cuò)誤信息xxx字段不能為空,那么我們?yōu)槭裁床粚xx作為一個(gè)變量參數(shù)傳遞過來呢。于是就想到了用枚舉類定義異常信息,然后用String.format()方法進(jìn)行轉(zhuǎn)義

public?enum?ResponseInfoEnum?{
?SUCCESS(ResponseResult.OK,"處理成功"),
?PARAM_LENGTH_ERROR(ResponseResult.ERROR,?"參數(shù):%s,長(zhǎng)度錯(cuò)誤,max?length:?%s"),
?REQ_PARAM_ERROR(ResponseResult.ERROR,?"請(qǐng)求報(bào)文必填參數(shù)%s缺失"),;
?private?Integer?code;
?private?String?message;
?ResponseInfoEnum(Integer?code,?String?message)?{
?this.code?=?code;
?this.message?=?message;
?}
?public?Integer?getCode()?{
?return?code;
?}
?public?String?getMessage()?{
?return?message;
?}
}

使用方法如下

String.format(ResponseInfoEnum.REQ_PARAM_ERROR.getMessage(),"testValue")

可以看到生成的錯(cuò)誤信息是請(qǐng)求報(bào)文必填參數(shù)testValue缺失

02自定義異常信息

首先我們需要知道我們?yōu)槭裁匆米远x異常信息呢?使用它有什么好處呢?

首先我們開發(fā)中肯定是分模塊進(jìn)行開發(fā)的,所以首先我們統(tǒng)一了自定義異常類就統(tǒng)一了對(duì)外異常的展示方式。

使用自定義異常繼承相關(guān)的異常來拋出處理后的異常信息可以隱藏底層的異常,這樣更安全,異常信息也更加的直觀。自定義異??梢話伋鑫覀冏约合胍獟伋龅男畔?,可以通過拋出的信息區(qū)分異常發(fā)生的位置,根據(jù)異常名我們就可以知道哪里有異常,根據(jù)異常提示信息進(jìn)行程序修改。

有時(shí)候我們遇到某些校驗(yàn)或者問題時(shí),需要直接結(jié)束掉當(dāng)前的請(qǐng)求,這時(shí)便可以通過拋出自定義異常來結(jié)束,如果你項(xiàng)目中使用了SpringMVC比較新的版本的話有控制器增強(qiáng),可以通過 ControllerAdvice注解寫一個(gè)控制器增強(qiáng)類來攔截自定義的異常并響應(yīng)給前端相應(yīng)的信息。

自定義異常我們需要繼承RuntimeException

public?class?CheckException?extends?RuntimeException{
?public?CheckException()?{
?}
?public?CheckException(String?message)?{
?super(message);
?}
?public?CheckException(ResponseInfoEnum?responseInfoEnum,String?...strings)?{
?super(String.format(responseInfoEnum.getMessage(),strings));
?}
}

03統(tǒng)一返回信息

在我剛開始工作的一年中,所接觸的最多的項(xiàng)目就是前后端交互的項(xiàng)目了。所以有一個(gè)統(tǒng)一的返回信息不僅對(duì)前端來說更加便利,對(duì)于我們后面的AOP代理也有很大的好處。

@Data
@NoArgsConstructor
public?class?ResponseResult<T>?{
?public?static?final?Integer?OK?=?0;
?public?static?final?Integer?ERROR?=?100;
?private?Integer?code;
?private?String?message;
?private?T?data;
}

這樣前后端進(jìn)行交互時(shí)就會(huì)更加便利了,如果要取業(yè)務(wù)數(shù)據(jù)那么就從data中取,去過要取是否成功的標(biāo)志,那么就從code碼中取,如果要取后端返回的信息,那么就從message中取。

04全局異常處理

在我之前的項(xiàng)目中每個(gè)Controller方法中都充斥著try....catch...的代碼,而catch后的代碼都是大同小異,都是封裝了一下返回的錯(cuò)誤信息之類的。那么我們?yōu)槭裁床粚⑦@些代碼抽取出來,利用Spring的全局異常處理簡(jiǎn)化我們的代碼呢?

@Slf4j
@ControllerAdvice
public?class?ControllerExceptionHandler?{
?@ExceptionHandler(value?=?Exception.class)
?@ResponseBody
?public?ResponseResult<String>?defaultErrorHandler(HttpServletRequest?request,?Exception?exception){
?log.error(ControllerLog.getLogPrefix()+"Exception:?{}"+exception);
?return?handleErrorInfo(exception.getMessage());
?}
?@ExceptionHandler(CheckException.class)
?@ResponseBody
?public?ResponseResult<String>?checkExceptionHandler(HttpServletRequest?request,?CheckException?exception){
?return?handleErrorInfo(exception.getMessage());
?}
?private?ResponseResult<String>?handleErrorInfo(String?message)?{
?ResponseResult<String>?responseEntity?=?new?ResponseResult<>();
?responseEntity.setMessage(message);
?responseEntity.setCode(ResponseResult.ERROR);
?responseEntity.setData(message);
?ControllerLog.destoryThreadLocal();
?return?responseEntity;
?}
}

其中全局異常處理中,我們自定義的異常就沒有打印日志,因?yàn)閷?duì)于自定義的異常我們是已知的異常,并且錯(cuò)誤信息也已經(jīng)很明確的返回了。而對(duì)于未知異常例如Exception就屬于未知的異常,我們就需要打印日志,如果這里有特殊需求,例如發(fā)短信、發(fā)郵件通知相關(guān)人員的話,這里也能夠進(jìn)行全局的配置。

Java后端開發(fā)視頻只學(xué)習(xí)需要注意哪幾點(diǎn)

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java后端開發(fā)視頻只學(xué)習(xí)需要注意哪幾點(diǎn)”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 伊人狠狠丁香婷婷综合色 | 久青草免费视频手机在线观看 | 色综合久久精品中文字幕首页 | 免费一区二区三区免费视频 | 99精品视频在线观看免费 | 日韩在线免费视频 | 成年女人免费看一级人体片 | 久久激情视频 | 一级免费大片 | 国产精品不卡视频 | 欧美洲久久日韩欧美 | 精品在线免费播放 | 深夜福利国产福利视频 | 在线观看久久 | 精品91视频| 天天干精品| 国产日韩欧美中文字幕 | 国产精品久久国产三级国电话系列 | 欧美日本视频在线观看 | 国产精品青青青高清在线密亚 | 日韩免费高清一级毛片在线 | 777奇米影音| 久久影院中文字幕 | 国产成人久久精品区一区二区 | 国产免费一区二区三区 | 日韩一级黄色影片 | 男人天堂视频在线 | 国产精品视频福利视频网 | 国产高清成人mv在线观看 | 视频二区 素人 欧美 日韩 | 日本视频三区 | 欧美成人天天综合在线视色 | 欧美日韩成人午夜免费 | 国产成人v片视频在线观看 国产成人爱片免费观看视频 | 国产精品国产三级国产an | 欧美日一级片 | 国产免费无遮挡精品视频 | 精品国产一级毛片大全 | 国产成人aa免费视频 | 久久精品一区二区三区日韩 | 中文字幕久久精品波多野结 |