最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot學(xué)習(xí)之全局異常處理設(shè)置(返回JSON)

 更新時(shí)間:2018年02月11日 10:43:25   作者:-貧寒豌豆  
本篇文章主要介紹了SpringBoot學(xué)習(xí)之全局異常處理設(shè)置(返回JSON),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

SpringBoot學(xué)習(xí)——全局異常處理設(shè)置(返回JSON)

需求

  1. 現(xiàn)在習(xí)慣使用ajax的方式發(fā)起請求,所以經(jīng)常需要服務(wù)端返回一個(gè)json或者字符串。
  2. 控制全局的異常處理。
  3. 如果在單個(gè)方法中使用try,catch把方法包裹起來,工作量大,而且會異常的拋出而導(dǎo)致@Transactional注解的方法事務(wù)不會回滾。

說明

  1. 使用@ControllerAdvice注解
  2. 使用@ExceptionHandler注解

@ControllerAdvice

該注解是spring2.3以后新增的一個(gè)注解,主要是用來Controller的一些公共的需求的低侵入性增強(qiáng)提供輔助,作用于@RequestMapping標(biāo)注的方法上。

@ExceptionHandler

該注解是配合@ExceptionHandler一起使用的注解,自定義錯(cuò)誤處理器,可自己組裝json字符串,并返回到頁面。

代碼

創(chuàng)建一個(gè)全局異常處理類,如下:

如果向?qū)崿F(xiàn),不同的異常有不同的操作的話,只需要將 @ExceptionHandler的value的值不一樣就可以了,可以同時(shí)實(shí)現(xiàn)多個(gè)不同的異常處理,但不能出現(xiàn)包含狀態(tài)。

import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
@ResponseBody
public class GlobalExceptionHandler {

  /**
   * 所有異常報(bào)錯(cuò)
   * @param request
   * @param exception
   * @return
   * @throws Exception
   */
  @ExceptionHandler(value=Exception.class) 
  public String allExceptionHandler(HttpServletRequest request, 
      Exception exception) throws Exception 
  { 
    exception.printStackTrace();
    System.out.println("我報(bào)錯(cuò)了:"+exception.getLocalizedMessage());
    System.out.println("我報(bào)錯(cuò)了:"+exception.getCause());
    System.out.println("我報(bào)錯(cuò)了:"+exception.getSuppressed());
    System.out.println("我報(bào)錯(cuò)了:"+exception.getMessage());
    System.out.println("我報(bào)錯(cuò)了:"+exception.getStackTrace());
    return "服務(wù)器異常,請聯(lián)系管理員!"; 
  } 
}

模擬一個(gè)拋出異常類,下例是拋出一個(gè)空指針異常和分母不為異常

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/exceptionTest")
@ResponseBody
public class ExceptionTest {
  @RequestMapping("/test")
  public String test(){
    Message msg = null;
    msg.toString();
    createException();
    return "我是正常的";
  }

  private void createException(){
    int i = 5/0;
  }
}

啟動Springboot,執(zhí)行結(jié)果

因?yàn)榉祷氐氖亲址?,也可以使用json工具類來封裝,返回一個(gè)json字符串  

 

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • springmvc模式的上傳和下載實(shí)現(xiàn)解析

    springmvc模式的上傳和下載實(shí)現(xiàn)解析

    這篇文章主要介紹了springmvc模式下的上傳和下載實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 簡單了解JAVA NIO

    簡單了解JAVA NIO

    這篇文章主要介紹了JAVA NIO的的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Java版水果管理系統(tǒng)源碼

    Java版水果管理系統(tǒng)源碼

    這篇文章主要為大家詳細(xì)介紹了Java版水果管理系統(tǒng)源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 帶你了解10道java入門面試題

    帶你了解10道java入門面試題

    面試題相信大家都不陌生,想要一個(gè)好的工作面試題必不可少的,下面和小編一起來學(xué)習(xí)與了解Java當(dāng)中有有些什么面試題吧,希望能給你帶來幫助
    2021-08-08
  • Mybatis中如何進(jìn)行批量更新(updateBatch)

    Mybatis中如何進(jìn)行批量更新(updateBatch)

    這篇文章主要介紹了Mybatis中如何進(jìn)行批量更新(updateBatch),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • java多線程的同步方法實(shí)例代碼

    java多線程的同步方法實(shí)例代碼

    這篇文章主要介紹了 java多線程的同步方法實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringBoot實(shí)現(xiàn)Mysql使用MD5進(jìn)行密碼加密的示例

    SpringBoot實(shí)現(xiàn)Mysql使用MD5進(jìn)行密碼加密的示例

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)Mysql使用MD5進(jìn)行密碼加密的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Mybatis-Plus動態(tài)表名的實(shí)現(xiàn)示例

    Mybatis-Plus動態(tài)表名的實(shí)現(xiàn)示例

    面對復(fù)雜多變的業(yè)務(wù)需求,動態(tài)表名的處理變得愈發(fā)重要,本文主要介紹了Mybatis-Plus動態(tài)表名的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Maven 的配置文件路徑讀取方法

    Maven 的配置文件路徑讀取方法

    這篇文章主要介紹了Maven 的配置文件路徑讀取方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Spring Security 自動踢掉前一個(gè)登錄用戶的實(shí)現(xiàn)代碼

    Spring Security 自動踢掉前一個(gè)登錄用戶的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Spring Security 自動踢掉前一個(gè)登錄用戶的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05

最新評論

锡林浩特市| 东明县| 新乡市| 吉木乃县| 临高县| 钦州市| 邮箱| 林芝县| 奎屯市| 庄河市| 宿迁市| 类乌齐县| 龙里县| 墨脱县| 田林县| 江永县| 三亚市| 抚州市| 秦皇岛市| 封丘县| 栾城县| 峨边| 襄垣县| 溧阳市| 扎赉特旗| 门头沟区| 年辖:市辖区| 沂源县| 彩票| 浮山县| 新安县| 越西县| 宣武区| 三门峡市| 卓尼县| 苍溪县| 巨鹿县| 德州市| 巴林左旗| 沂源县| 安乡县|