精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

如何優雅的處理異常?SpringBoot全局異常與數據校驗

開發 后端
在現在的前后端交互中,通常都規范了接口返回方式,如返回的接口狀態(成功|失?。┮约耙祷氐臄祿谀莻€字段取,或者說失敗了以后提示信息從接口哪里返回,因此,如果想做全局異常,并且異常發生后能準確的返回給前端解析,那么需要異常發生時返回給前端的格式與正常失敗場景的格式一致。

 要思考的問題

在現在的前后端交互中,通常都規范了接口返回方式,如返回的接口狀態(成功|失?。┮约耙祷氐臄祿谀莻€字段取,或者說失敗了以后提示信息從接口哪里返回,因此,如果想做全局異常,并且異常發生后能準確的返回給前端解析,那么需要異常發生時返回給前端的格式與正常失敗場景的格式一致。

項目建立

利用idea 工具,很容易的搭建一個SpringBoot項目,要引入的maven依賴如下: 

  1. <dependency>  
  2.  <groupId>org.springframework.boot</groupId>  
  3.  <artifactId>spring-boot-starter-validation</artifactId>  
  4. </dependency>  
  5. <dependency>  
  6.  <groupId>org.springframework.boot</groupId>  
  7.  <artifactId>spring-boot-starter-web</artifactId>  
  8. </dependency>  
  9. <dependency>  
  10.  <groupId>org.springframework.boot</groupId>  
  11.  <artifactId>spring-boot-starter-test</artifactId>  
  12.  <scope>test</scope>  
  13. </dependency> 

很簡單,除了加入web功能還加入了我們需要用到的JSR-303校驗框架。

定義成功失敗 返回碼 

  1. public class Code {  
  2.  /**  
  3.  * 成功  
  4.  */  
  5.  public static int SUCCESSED = 1 
  6.  /**  
  7.  * 失敗  
  8.  */  
  9.  public static int FAILED = -1;  

定義接口返回響應實體 

  1. public class Response<T> implements Serializable{  
  2.  /**  
  3.  *   
  4.  */  
  5.  private static final long serialVersionUID = 4250719891313555820L 
  6.  /**  
  7.  * 返回結果集  
  8.  */  
  9.  private T result;  
  10.  /**  
  11.  * 返回消息  
  12.  */  
  13.  private String msg;  
  14.  /**  
  15.  * 響應碼  
  16.  */  
  17.  private Integer code;  
  18.  //set get 略  

全局異常攔截和驗證

定義自定義業務異常 

  1. public class MyException extends RuntimeException {  
  2.  private static final long serialVersionUID = -5875371379845226068L;  
  3.  public MyException(){}  
  4.  public MyException(String msg){  
  5.  this.msg = msg ;  
  6.  }  
  7.  /**  
  8.  * 異常信息  
  9.  */  
  10.  private String msg ;  
  11.  /**  
  12.  * 具體異常碼  
  13.  */  
  14.  private int code = Code.FAILED;  
  15.  get set 略  

編寫全局異??刂破鞑ψ远x異常做處理 

  1. @ControllerAdvice  
  2. public class GlobalExceptionHandler {  
  3.  private Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);  
  4. @ExceptionHandler(value = MyException.class)  
  5. @ResponseBody  
  6. public Response<String> myExceptionErrorHandler(MyException ex) throws Exception {  
  7.  logger.error("myExceptionErrorHandler info:{}",ex.getMessage());  
  8.  Response<String> r = new Response<>();  
  9.  r.setMsg(ex.getMsg());  
  10.  r.setCode(ex.getCode());  
  11.  return r;  

編寫controller模擬拋出業務異常 

  1. @RestController  
  2. @RequestMapping("/user")  
  3. public class UserController {  
  4. @PostMapping(value = "/update" 
  5. Response<Boolean> update(User user){  
  6.  //todo 此處為模擬異常拋出  
  7.  if(true){  
  8.  throw new MyException("更新失敗");  
  9.  }  
  10.  //todo 此處為模擬返回  
  11.  Response<Boolean> response = new Response<>();  
  12.  response.setCode(Code.SUCCESSED);  
  13.  response.setResult(true);  
  14.  return response;  
  15.  

postMan模擬請求接口,進行驗證

數據綁定異常處理

通常我們操作數據的時候,不僅前端需要進行數據校驗,后端也應當進行攔截和進行相應的錯誤提示,JSR-303校驗框架也是我們的一種選擇。

編寫實體`User`,并對屬性進行注解控制 

  1. public class User {  
  2.  @NotNull(message = "用戶名不能為空" 
  3.  private String userName;  
  4.  private int age;  
  5.  //... 

全局異??刂祁惣尤霐r截 

  1. @ControllerAdvice  
  2. public class GlobalExceptionHandler {  
  3.  private Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);  
  4.  @ExceptionHandler(value = BindException.class)  
  5.  @ResponseBody  
  6.  public Response<String> bindExceptionErrorHandler(BindException ex) throws Exception {  
  7.  logger.error("bindExceptionErrorHandler info:{}",ex.getMessage());  
  8.  Response<String> r = new Response<>();  
  9.  StringBuilder sb = new StringBuilder();  
  10.  FieldError fieldError = ex.getFieldError();  
  11.  sb.append(fieldError.getDefaultMessage());  
  12.  r.setMsg(sb.toString());  
  13.  r.setCode(Code.FAILED);  
  14.  return r;  
  15.  }  
  16.  //... 

編寫控制器 

  1. @RestController  
  2. @RequestMapping("/user")  
  3. public class UserController {  
  4.  @PostMapping(value = "/add" 
  5.  Response<User> add(@Validated User user){  
  6.  //todo 此處為模擬返回  
  7.  Response<User> response = new Response<>();  
  8.  response.setCode(Code.SUCCESSED);  
  9.  response.setResult(new User());  
  10.  return response;  
  11.  }  
  12.  //... 

postMan模擬請求

不填寫任何屬性,模擬添加操作,準確進行攔截和報錯

項目結構預覽:

結尾

適合的才是***的,每個團隊都應摸索出自己的一套異常解決方案,本文所提僅針對業務異常,希望大家也能有所收獲

責任編輯:龐桂玉 來源: 今日頭條
相關推薦

2017-08-10 10:28:43

SpringBootSpring

2022-08-03 07:07:10

Spring數據封裝框架

2023-10-10 13:23:18

空指針異常Java

2022-03-04 08:31:07

Spring異常處理

2021-04-20 10:50:38

Spring Boot代碼Java

2023-12-27 07:53:08

全局異常處理處理應用

2022-05-03 10:43:43

SpringJava

2023-10-27 08:20:12

springboot微服務

2024-10-28 08:32:22

統一接口響應SpringBoot響應框架

2025-09-12 09:31:29

2020-03-16 17:20:02

異常處理Spring Boot

2021-09-26 09:40:25

React代碼前端

2009-02-06 14:11:36

ASP.NET.NET全局異常處理

2019-08-29 14:30:16

代碼開發工具

2024-09-26 10:51:51

2020-08-24 13:35:59

trycatchJava

2022-03-01 21:25:30

對象代碼Proxy

2019-03-14 15:59:44

前端開發編程

2023-12-13 13:28:00

Spring全局異常處理架構

2025-02-10 09:49:00

點贊
收藏

51CTO技術棧公眾號

国产乱码精品一品二品| a级网站在线播放| 国产农村妇女毛片精品久久莱园子| 精品三级在线观看| 日韩欧美国产综合在线| 欧美女优在线观看| 加勒比av一区二区| 久久久免费在线观看| 国精产品一区一区三区免费视频| 国产极品久久久久久久久波多结野 | 日韩有码一区| 在线91免费看| 国产精品无码一区二区在线| www在线免费观看| 国产成人av影院| 国产成一区二区| 成年人一级黄色片| 精品大片一区二区| 日韩免费性生活视频播放| 黑人糟蹋人妻hd中文字幕| 五月天婷婷在线视频| 暴力调教一区二区三区| 国产欧美日韩高清| 特黄视频免费看| 欧美在线观看天堂一区二区三区| 亚洲精品天天看| 黄色网址在线免费看| 天天综合天天综合| 国产在线播精品第三| 全亚洲最色的网站在线观看| 久久久久亚洲AV成人| 精品九九在线| 日韩国产在线播放| 国产精品99精品无码视亚| 成人亚洲网站| 色美美综合视频| 精品久久久久久无码中文野结衣| 免费a在线看| 国产亚洲精品bt天堂精选| 国产91色在线|免| 欧美日韩中文视频| 欧美淫片网站| 日韩三级视频在线看| 久久精品91久久久久久再现| 中国av免费看| 伊色综合久久之综合久久| se01亚洲视频| 99re热这里只有精品视频| 91精品国产乱码久久久久久蜜臀| eeuss中文字幕| 一区二区三区日本久久久| 亚洲成人精品在线| av在线天堂网| 亚洲精品一二三**| 欧美一激情一区二区三区| 亚洲视频在线看| 一本色道久久综合狠狠躁篇怎么玩| 一女二男3p波多野结衣| 芒果视频成人app| 亚洲曰韩产成在线| 不卡视频一区| 国产乱码在线观看| 国产精品一级| 欧美久久精品一级黑人c片| 99精品欧美一区二区| 国产成人久久| 欧美日韩国产一级| 欧美日韩一区二区在线免费观看| a天堂资源在线| 一区二区三区欧美视频| 久久综合久久久| 亚洲欧美日韩精品永久在线| 99久久精品99国产精品| 久久婷婷人人澡人人喊人人爽| 日本精品一区二区在线观看| youjizz国产精品| 精品久久蜜桃| 国产中文字幕在线播放| 久久精品人人做人人综合| 日本不卡二区高清三区| 国产视频www| 精品一区二区成人精品| 亚洲永久免费观看| 中文字幕在线播放不卡| 国产一区二区三区在线观看免费 | 99视频在线观看地址| 欧美韩国日本不卡| 免费国产一区| 伊人在线视频| 一区二区三区久久久| 免费看欧美黑人毛片| 筱崎爱全乳无删减在线观看| 亚洲视频一区在线观看| 欧美日韩午夜爽爽| 国产在线小视频| 欧美国产一区视频在线观看| 青草全福视在线| 绿色成人影院| 欧美日韩你懂得| 99热这里只有精品2| 婷婷激情久久| 久久精品国产精品亚洲| 日韩久久久久久久久| 日韩黄色一级片| 92国产精品视频| 五月婷婷免费视频| 国产丝袜欧美中文另类| 日本一道在线观看| 欧美黑人疯狂性受xxxxx野外| 色综合天天在线| 亚洲a级黄色片| 粉嫩一区二区三区| 日韩一级免费一区| a天堂中文字幕| 午夜精品久久| 国产精品视频一| 无码国产精品一区二区免费16| 欧美三级三级| 高清欧美性猛交xxxx| 一本久道久久综合无码中文| 久久婷婷激情| 粉嫩高清一区二区三区精品视频| av大片在线观看| 午夜精品久久久久久久久久 | 亚洲第一色中文字幕| 精品一区二区6| 亚洲综合日韩| 成人激情直播| 在线免费观看a视频| 欧美午夜不卡在线观看免费| aa片在线观看视频在线播放| 国产精品九九| 欧美极品在线视频| 一级黄色a视频| 久久久国产一区二区三区四区小说| 无码人妻精品一区二区蜜桃百度| 国产一二区在线| 欧洲一区二区三区在线| 欧美 日本 国产| 亚洲精品一级| 国产高清精品一区二区三区| 中文字幕在线播放网址| 欧美美女网站色| 黄色av片三级三级三级免费看| 久久婷婷亚洲| 欧美日韩最好看的视频| 日韩在线伦理| 国产丝袜高跟一区| 亚洲影院在线播放| 久久在线观看免费| 免费高清在线观看免费| 亚洲尤物av| 欧日韩在线观看| 无码精品视频一区二区三区| 午夜精品久久久久久久99水蜜桃| av天堂一区二区| 亚洲黄色一区| 精品日本一区二区| 中文在线а√天堂| 亚洲日本欧美日韩高观看| www.av88| 日韩美女啊v在线免费观看| 宇都宫紫苑在线播放| 国内精品久久久久久久影视蜜臀| 丁香婷婷久久久综合精品国产| 欧美韩日亚洲| 欧美丝袜一区二区| 成人免费毛片糖心| 日本视频免费一区| gogogo免费高清日本写真| 狂野欧美xxxx韩国少妇| 久久99精品国产99久久6尤物| 亚洲第一色网站| 五月激情综合色| 亚洲精品性视频| 中文在线日韩| 狠狠色噜噜狠狠狠狠色吗综合| 碰碰在线视频| 中文字幕亚洲图片| 国产成人免费看一级大黄| 国产日韩欧美不卡| 伊人色在线观看| 欧美午夜a级限制福利片| 国产一区在线免费观看| av日韩电影| 久久精品视频中文字幕| 亚洲不卡免费视频| 欧美性生活大片免费观看网址| 日本午夜精品视频| 丁香婷婷综合五月| 久久久久久三级| 欧美fxxxxxx另类| 欧美精品123| 玖玖玖视频精品| 欧美自拍大量在线观看| 日本精品在线| 亚洲高清久久久久久| 中文字幕第31页| 亚洲国产美女搞黄色| 在线免费看黄视频| 国产传媒久久文化传媒| 综合视频免费看| 久久国产精品免费精品3p| 国产999精品久久久影片官网| 菠萝菠萝蜜在线视频免费观看| 日韩精品免费一线在线观看| 一卡二卡在线观看| 欧美日韩精品在线观看| 丰满少妇被猛烈进入一区二区| 91久色porny| 国产乱淫av片| 久久精品99久久久| 日韩在线xxx| 影音先锋亚洲电影| 日韩视频在线免费播放| 亚洲精品亚洲人成在线| 91观看网站| 成人国产一区| 国产999精品久久久| av在线加勒比| 久久夜精品香蕉| eeuss影院www在线观看| 亚洲剧情一区二区| 手机在线观看免费av| 91精品国产一区二区三区蜜臀 | 欧美全黄视频| 亚洲三区视频| 国产欧美一区| 鲁丝一区鲁丝二区鲁丝三区| 亚洲精品午夜| 91一区二区三区| 国产精品视频首页| 欧美巨大黑人极品精男| 久久综合九色综合久| 亚洲国产精品电影| jizz中国女人| 7777精品伊人久久久大香线蕉的| www.久久网| 91高清视频在线| 中文字幕在线观看视频免费| 懂色av影视一区二区三区| a v视频在线观看| 午夜精品久久久久影视| 国产a∨精品一区二区三区仙踪林| 亚洲一区视频在线| 国产熟妇久久777777| 99久久精品情趣| 最近中文字幕无免费| fc2成人免费人成在线观看播放 | 亚洲一区二区三区中文字幕在线观看| 国产在线视频欧美| 欧美美女福利视频| 国产精品自拍偷拍视频| 青青久久精品| 亚洲tv在线观看| 日本精品在线播放| 国产精品日韩一区二区三区 | 日本成人中文字幕| 男女污污的视频| 成人一区而且| 日韩视频在线播放| 99久久婷婷| 真人做人试看60分钟免费| 国内精品福利| 亚洲熟妇av一区二区三区漫画| 国产精品亚洲综合色区韩国| 十八禁视频网站在线观看| 免费在线观看精品| 手机av在线网站| 国v精品久久久网| 精品黑人一区二区三区观看时间| 久久看人人爽人人| 亚洲综合图片一区| 亚洲综合一区在线| 天天综合网久久综合网| 欧美探花视频资源| 精品国产伦一区二区三区| 色综合久久六月婷婷中文字幕| 综合网在线观看| 欧美日韩亚洲综合在线 | 亚洲国产成人在线视频| 三级视频在线播放| 中文字幕精品www乱入免费视频| 米奇精品一区二区三区| 性欧美激情精品| 99只有精品| 国产精品久久久久久免费观看| 免费精品国产的网站免费观看| 亚洲欧洲国产日韩精品| 亚洲高清激情| 久热精品在线播放| 成人永久免费视频| 69精品无码成人久久久久久| 亚洲欧美另类小说视频| 国产成人免费观看视频| 欧美丝袜丝交足nylons| 亚洲精品久久久久avwww潮水 | 一广人看www在线观看免费视频| 九色精品美女在线| 视频在线日韩| 国产精品国色综合久久| 欧美日韩伦理| 九色自拍视频在线观看| 欧美日韩午夜| 日本成年人网址| 国产成人综合亚洲网站| 免费一级特黄3大片视频| 久久久www免费人成精品| 老熟妇高潮一区二区三区| 欧美性猛交xxxx富婆| www.国产欧美| 色哟哟网站入口亚洲精品| 黄色在线网站噜噜噜| 91久久精品国产91久久| 祥仔av免费一区二区三区四区| 国产原创精品| 在线中文字幕亚洲| 在线观看免费成人av| 久久综合国产精品| 精品无码久久久久久久久| 欧美美女网站色| 福利成人在线观看| 欧美亚洲另类在线| 北条麻妃在线一区二区免费播放| 成年人黄色在线观看| 免费在线看成人av| 成人黄色a级片| 色视频一区二区| 天堂在线中文字幕| 国外成人免费在线播放| 无人区乱码一区二区三区| 中文字幕一区二区三区在线乱码 | 亚洲精品国产a| 91精东传媒理伦片在线观看| 伊人久久久久久久久久久| 久久野战av| 人禽交欧美网站免费| 亚洲综合二区| 欧美色图亚洲激情| 欧美日韩亚洲激情| 青青久草在线| 欧美在线激情网| 杨幂一区二区三区免费看视频| 国产精品无码一区二区在线| 成人国产免费视频| 欧美三级视频网站| 色噜噜狠狠色综合中国| 美女欧美视频在线观看免费 | 国产激情91久久精品导航| 99鲁鲁精品一区二区三区| 欧美一区二区三区四区高清| 久久综合网导航| 亚洲一区二区三区视频播放| 伊人情人综合网| 韩国黄色一级片| 亚洲国产日韩一级| 神宫寺奈绪一区二区三区| 2019中文在线观看| 美女毛片一区二区三区四区| 黄色av免费在线播放| 中文字幕精品—区二区四季| 亚洲一区二区三区网站| 久久综合网hezyo| 国产成人夜色高潮福利影视| 131美女爱做视频| 久久久精品综合| 在线观看国产成人| 欧美理论电影在线播放| 国产精品三p一区二区| 青青视频在线播放| 中文字幕av一区 二区| 国产乱色精品成人免费视频| 日韩成人在线视频观看| 在线日韩影院| 亚洲欧美日韩另类精品一区二区三区 | 26uuu色噜噜精品一区| www.日韩一区| 久久久精品国产一区二区| 福利片一区二区| 不卡影院一区二区| 日韩码欧中文字| 日韩一区二区三区不卡| 国产精品成人一区二区| 久久久9色精品国产一区二区三区| 色综合久久久无码中文字幕波多| 婷婷中文字幕一区三区| 成人好色电影| 国产91一区二区三区| 亚洲少妇一区| 神马久久精品综合| 日韩av有码在线| 亚洲国产精选| a级黄色一级片| 国产精品每日更新| 黄色污污视频软件| 欧美黄色片在线观看| 精品欧美激情在线观看| 在线观看亚洲免费视频| 欧美色成人综合| 国产在线看片免费视频在线观看|