日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

SpringBoot2.0 基础案例(03):配置系统全局异常映射处理

發布時間:2025/3/17 windows 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot2.0 基础案例(03):配置系统全局异常映射处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、異常分類

這里的異常分類從系統處理異常的角度看,主要分類兩類:業務異常和系統異常。

1、業務異常

業務異常主要是一些可預見性異常,處理業務異常,用來提示用戶的操作,提高系統的可操作性。

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

2、系統異常

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

常見的系統異常提示: 1)頁面丟失404 2)服務器異常500

二、解決應用啟動后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、運行效果

三、SpringBoot2.0中異常處理

1、項目結構圖

2、自定義業務異常類

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

3、自定義異常描述對象

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

4、統一異常處理格式

1)兩個基礎注解
@ControllerAdvice 定義統一的異常處理類
@ExceptionHandler 定義異常類型對應的處理方式
2)代碼實現

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 {/*** 自定義業務異常映射,返回JSON格式提示*/@ExceptionHandler(value = ServiceException.class)@ResponseBodypublic 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 ;}/*** 服務異常*/@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": "業務異常:ID 不能為空",* "url": "http://localhost:8003/exception01"* }*/@RequestMapping("/exception01")public String exception01 () throws ServiceException {throw new ServiceException("業務異常:ID 不能為空");}@RequestMapping("/exception02")public String exception02 () throws Exception {throw new Exception("出現異常,全體臥倒");} }

四、源代碼地址

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


總結

以上是生活随笔為你收集整理的SpringBoot2.0 基础案例(03):配置系统全局异常映射处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。