欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

Java

當(dāng)前位置:主頁(yè) > 軟件編程 > Java >

springboot全局異常處理代碼實(shí)例

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:Java|點(diǎn)擊: 次

這篇文章主要介紹了springboot全局異常處理代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

前言:

開發(fā)中異常的處理必不可少,常用的就是 throw 和 try catch,這樣一個(gè)項(xiàng)目到最后會(huì)出現(xiàn)很多冗余的代碼,使用全局異常處理避免過(guò)多冗余代碼。

全局異常處理:

1、pom 依賴(延續(xù)上一章代碼):

<dependencies>
  <!-- Spring Boot Web 依賴 -->
  <!-- Web 依賴 - 包含了 spring-boot-starter-validation 依賴-->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <!-- Spring Boot Test 依賴 -->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
  <!-- spring-boot整合mybatis -->
  <dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
  </dependency>
  <!-- mysql驅(qū)動(dòng) -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
  </dependency>
  <!-- alibaba的druid數(shù)據(jù)庫(kù)連接池 -->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.0</version>
  </dependency>
  <!--lombok依賴-->
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.18</version>
  </dependency>
  <!-- fastjson 依賴添加 -->
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.31</version>
  </dependency>
</dependencies> 

2、公共的結(jié)果類封裝:

這里簡(jiǎn)單封裝,實(shí)際根據(jù)自己業(yè)務(wù)需求去封裝。

@Getter
@Setter
public class ApiResult {
  // 響應(yīng)業(yè)務(wù)狀態(tài)
  private Integer status;
  // 響應(yīng)消息
  private String msg;
  // 響應(yīng)中的數(shù)據(jù)
  private Object data;
  public static ApiResult build(Integer status, String msg, Object data) {
    return new ApiResult(status, msg, data);
  }
  public static ApiResult ok(Object data) {
    return new ApiResult(data);
  }
  public static ApiResult ok() {
    return new ApiResult(null);
  }
  public ApiResult() { }
  public static ApiResult build(Integer status, String msg) {
    return new ApiResult(status, msg, null);
  }
  public ApiResult(Integer status, String msg, Object data) {
    this.status = status;
    this.msg = msg;
    this.data = data;
  }
  public ApiResult(Object data) {
    this.status = 200;
    this.msg = "OK";
    this.data = data;
  }
}

3、添加全局異常處理類(在入口函數(shù)下的包中新建):

/**
 * 全局異常處理 Handler
 * @ControllerAdvice 配置控制器通知
 * annotations 屬性: 指定我們需要攔截的注解,一個(gè)或多個(gè)(多個(gè)加到大括號(hào)中,逗號(hào)分隔)
 */
// @RestControllerAdvice = @ResponseBody + @ControllerAdvice
@RestControllerAdvice(annotations = {RestController.class})
@Slf4j
public class GlobalExceptionHandler {
  /**
  * 默認(rèn)統(tǒng)一異常處理方法
  * @ExceptionHandler 注解用來(lái)配置需要攔截的異常類型, 也可以是自定義異常
  */
  @ExceptionHandler(Exception.class)
  // 此處可以指定返回的狀態(tài)碼 和 返回 結(jié)果說(shuō)明
  // @ResponseStatus(reason = "exception",value = HttpStatus.BAD_REQUEST)
  public Object runtimeExceptionHandler(Exception e) {
    // 打印異常信息到控制臺(tái)
    e.printStackTrace();
    log.error("請(qǐng)求出現(xiàn)異常,異常信息為: {}", e.getMessage());
    // 使用公共的結(jié)果類封裝返回結(jié)果, 這里我指定狀態(tài)碼為 400
    return ApiResult.build(400, e.getMessage());
  }
}  

4、異常測(cè)試類:

/**
 * 異常處理測(cè)試 controller
 */
@RestController
@Slf4j
public class ExceptionController {
   @RequestMapping(value = "/exception/{number}")
   public ApiResult exception(@PathVariable int number) {
    int res = 10 / number;
    log.info(">>>>>結(jié)果number為: {}", res);
    return ApiResult.ok();
  }
}  

5、測(cè)試:

5.1、請(qǐng)求接口:http://localhost:8080/exception/1 結(jié)果正常

5.2、請(qǐng)求接口:http://localhost:8080/exception/0 出現(xiàn)除以 0 錯(cuò)誤,全局異常處理起作用,返回指定結(jié)果集。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持我們。

上一篇:Spring基于xml文件配置Bean過(guò)程詳解

欄    目:Java

下一篇:springboot2.x整合redis知識(shí)點(diǎn)講解

本文標(biāo)題:springboot全局異常處理代碼實(shí)例

本文地址:http://mengdiqiu.com.cn/a1/Java/8725.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有