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

SpringBoot配置系統(tǒng)全局異常映射處理

 更新時間:2021年06月19日 10:16:55   作者:知了一笑  
在項(xiàng)目開發(fā)中,肯定少不了異常的出現(xiàn),作為后臺開發(fā)人員,我們總是在不停的寫各種接口提供給前端調(diào)用,然而不可避免的,當(dāng)后臺出現(xiàn)BUG時,前端總是丑陋的講錯誤信息直接暴露給用戶,這樣的用戶體驗(yàn)想必是相當(dāng)差的,本文主要講解異常映射的配置

一、異常分類 

這里的異常分類從系統(tǒng)處理異常的角度看,主要分類兩類:業(yè)務(wù)異常和系統(tǒng)異常。

1、業(yè)務(wù)異常

業(yè)務(wù)異常主要是一些可預(yù)見性異常,處理業(yè)務(wù)異常,用來提示用戶的操作,提高系統(tǒng)的可操作性。

常見的業(yè)務(wù)異常提示:
1)請輸入xxx
2)xxx不能為空
3)xxx重復(fù),請更換

2、系統(tǒng)異常

系統(tǒng)異常主要是一些不可預(yù)見性異常,處理系統(tǒng)異常,可以讓展示出一個友好的用戶界面,不易給用戶造成反感。如果是一個金融類系統(tǒng),在用戶界面出現(xiàn)一個系統(tǒng)異常的崩潰界面,很有可能直接導(dǎo)致用戶流失。

常見的系統(tǒng)異常提示:
1)頁面丟失404
2)服務(wù)器異常500

二、解決應(yīng)用啟動后404界面

1、引入頁面Jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

2、自定義首頁接口

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
    @RequestMapping("/")
    public String index(ModelMap modelMap) {
        modelMap.addAttribute("name","知了一笑") ;
        return "index";
    }
}

3、首頁界面

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8" />
    <title></title>
</head>
<body>
<h1 th:text="${name}"></h1>
</body>
</html>

4、運(yùn)行效果

三、SpringBoot2.0中異常處理 

1、項(xiàng)目結(jié)構(gòu)圖

2、自定義業(yè)務(wù)異常類

public class ServiceException extends Exception {
    public ServiceException (String msg){
        super(msg);
    }
}

3、自定義異常描述對象

public class ReturnException {
    // 響應(yīng)碼
    private Integer code;
    // 異常描述
    private String msg;
    // 請求的Url
    private String url;
    // 省略 get set 方法
}

4、統(tǒng)一異常處理格式

1)兩個基礎(chǔ)注解
@ControllerAdvice 定義統(tǒng)一的異常處理類
@ExceptionHandler 定義異常類型對應(yīng)的處理方式
2)代碼實(shí)現(xiàn)

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
@ControllerAdvice
// 異常以Json格式返回 等同 ExceptionHandler + ResponseBody 注解
// @RestControllerAdvice
public class HandlerException {
    /**
     * 自定義業(yè)務(wù)異常映射,返回JSON格式提示
     */
    @ExceptionHandler(value = ServiceException.class)
    @ResponseBody
    public ReturnException handler01 (HttpServletRequest request,ServiceException e){
        ReturnException returnException = new ReturnException() ;
        returnException.setCode(600);
        returnException.setMsg(e.getMessage());
        returnException.setUrl(String.valueOf(request.getRequestURL()));
        return returnException ;
    }
    /**
     * 服務(wù)異常
     */
    @ExceptionHandler(value = Exception.class)
    public ModelAndView handler02 (HttpServletRequest request,Exception e){
        ModelAndView modelAndView = new ModelAndView() ;
        modelAndView.addObject("ExeMsg", e.getMessage());
        modelAndView.addObject("ReqUrl", request.getRequestURL());
        modelAndView.setViewName("/exemsg");
        return modelAndView ;
    }
}

5、簡單的測試接口

@Controller
public class ExeController {
    /**
     *  {
     *    "code": 600,
     *    "msg": "業(yè)務(wù)異常:ID 不能為空",
     *    "url": "http://localhost:8003/exception01"
     *  }
     */
    @RequestMapping("/exception01")
    public String exception01 () throws ServiceException {
        throw new ServiceException("業(yè)務(wù)異常:ID 不能為空");
    }

    @RequestMapping("/exception02")
    public String exception02 () throws Exception {
        throw new Exception("出現(xiàn)異常,全體臥倒");
    }
}

四、源代碼地址 

GitHub:知了一笑
https://github.com/cicadasmile/spring-boot-base

以上就是SpringBoot配置系統(tǒng)全局異常映射處理的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot 異常映射處理的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • IDEA中的.iml文件和.idea文件的作用及意義

    IDEA中的.iml文件和.idea文件的作用及意義

    iml是 項(xiàng)目標(biāo)識文件,每一個模塊都有一個iml文件,存儲模塊的相關(guān)信息,跟eclipse的project文件是一樣的功能,這篇文章主要介紹了IDEA中的.iml文件和.idea文件的作用,需要的朋友可以參考下
    2023-09-09
  • Java十道入門易踩坑題分析后篇

    Java十道入門易踩坑題分析后篇

    這篇文章總結(jié)分析了Java入門容易碰到的幾點(diǎn)易進(jìn)坑的題目,對于新手小白剛開始學(xué)Java非常有益處,讓你少走避開彎路,感興趣的朋友快來看看吧
    2022-01-01
  • Java向數(shù)據(jù)庫插入中文出現(xiàn)亂碼解決方案

    Java向數(shù)據(jù)庫插入中文出現(xiàn)亂碼解決方案

    這篇文章主要介紹了Java向數(shù)據(jù)庫插入中文出現(xiàn)亂碼解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • Java動態(tài)加載類示例詳解

    Java動態(tài)加載類示例詳解

    這篇文章主要給大家介紹了關(guān)于Java動態(tài)加載類的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • IntelliJ IDEA下自動生成Hibernate映射文件以及實(shí)體類

    IntelliJ IDEA下自動生成Hibernate映射文件以及實(shí)體類

    這篇文章主要介紹了IntelliJ IDEA下自動生成Hibernate映射文件以及實(shí)體類,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 如何徹底刪除SVN中的文件和文件夾(附恢復(fù)方法)

    如何徹底刪除SVN中的文件和文件夾(附恢復(fù)方法)

    在SVN中如果刪除某個文件或文件夾也可以在歷史記錄中進(jìn)行找回,有的時候需要徹底刪除某些文件,即不希望通過歷史記錄進(jìn)行恢復(fù),需要在服務(wù)器上對SVN的數(shù)據(jù)進(jìn)行重新整理
    2014-08-08
  • SpringBoot項(xiàng)目中使用AOP的方法

    SpringBoot項(xiàng)目中使用AOP的方法

    本篇文章主要介紹了SpringBoot項(xiàng)目中使用AOP的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Spring責(zé)任鏈模式使用實(shí)例講解

    Spring責(zé)任鏈模式使用實(shí)例講解

    責(zé)任鏈?zhǔn)切袨樾驮O(shè)計(jì)模式的一種,通過前一個處理者記錄下一個處理者的方式形成一條處理鏈??蛻舳嗽谡{(diào)用時只需要將請求傳遞到責(zé)任上即可,無需關(guān)注鏈路中的具體的傳遞過程。而鏈路中內(nèi)部的處理,是按照前一個處理者記錄的下一個處理者依次執(zhí)行
    2023-01-01
  • 簡單了解Java類成員初始化順序

    簡單了解Java類成員初始化順序

    這篇文章主要介紹了簡單了解Java類成員初始化順序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • Maven中怎么手動添加jar包到本地倉庫詳解(repository)

    Maven中怎么手動添加jar包到本地倉庫詳解(repository)

    這篇文章主要給大家介紹了關(guān)于Maven中怎么手動添加jar包到本地倉庫的相關(guān)資料,文中通過圖文以及實(shí)例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2023-04-04

最新評論

彭泽县| 黔南| 东山县| 南皮县| 永丰县| 中卫市| 曲周县| 南靖县| 玉林市| 平邑县| 望江县| 页游| 手游| 奎屯市| 陇南市| 犍为县| 武鸣县| 巢湖市| 澳门| 肇庆市| 墨脱县| 伊吾县| 高雄市| 焦作市| 河津市| 南部县| 乌兰浩特市| 尉氏县| 左权县| 简阳市| 泗水县| 丹棱县| 南安市| 海原县| 南乐县| 稻城县| 闸北区| 榕江县| 饶阳县| 资溪县| 磴口县|