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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

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

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

一、異常分類

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

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

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

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

2、系統(tǒng)異常

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

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

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

1、引入頁(yè)面Jar包

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

2、自定義首頁(yè)接口

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、首頁(yè)界面

<!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、自定義異常描述對(duì)象

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

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

1)兩個(gè)基礎(chǔ)注解
@ControllerAdvice 定義統(tǒng)一的異常處理類
@ExceptionHandler 定義異常類型對(duì)應(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)@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 ;}/*** 服務(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、簡(jiǎn)單的測(cè)試接口

@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


總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。