SpringBoot配置系统全局异常映射处理

目录一、异常分类1、业务异常2、系统异常二、解决应用启动后404界面1、引入页面Jar包2、自定义首页接口3、首页界面4、运行效果三、SpringBoot2.0中异常处理1、项目结构图2、自定义业务异常类3、自定义异常描述对象4、统一异常处理格式5、简单的测试接口四、源代码地址

一、异常分类

这里的异常分类从系统处理异常的角度看,主要分类两类:业务异常和系统异常。

1、业务异常

业务异常主要是一些可预见性异常,处理业务异常,用来提示用户的操作,提高系统的可操作性。

常见的业务异常提示:1)请输入xxx2)xxx不能为空3)xxx重复,请更换

2、系统异常

系统异常主要是一些不可预见性异常,处理系统异常,可以让展示出一个友好的用户界面,不易给用户造成反感。如果是一个金融类系统,在用户界面出现一个系统异常的崩溃界面,很有可能直接导致用户流失。

常见的系统异常提示:1)页面丢失4042)服务器异常500

二、解决应用启动后404界面

1、引入页面Jar包

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

2、自定义首页接口

importorg.springframework.stereotype.Controller;importorg.springframework.ui.ModelMap;importorg.springframework.web.bind.annotation.RequestMapping;@ControllerpublicclassIndexController{@RequestMapping("/")publicStringindex(ModelMapmodelMap){modelMap.addAttribute("name","知了一笑");return"index";}}

3、首页界面

<!DOCTYPEhtml><html><headlang="en"><metacharset="UTF-8"/><title></title></head><body><h1th:text="${name}"></h1></body></html>

4、运行效果

三、SpringBoot2.0中异常处理

1、项目结构图

2、自定义业务异常类

publicclassServiceExceptionextendsException{publicServiceException(Stringmsg){super(msg);}}

3、自定义异常描述对象

publicclassReturnException{//响应码privateIntegercode;//异常描述privateStringmsg;//请求的UrlprivateStringurl;//省略getset方法}

4、统一异常处理格式

1)两个基础注解@ControllerAdvice 定义统一的异常处理类@ExceptionHandler 定义异常类型对应的处理方式2)代码实现

importorg.springframework.web.bind.annotation.ControllerAdvice;importorg.springframework.web.bind.annotation.ExceptionHandler;importorg.springframework.web.bind.annotation.ResponseBody;importorg.springframework.web.servlet.ModelAndView;importjavax.servlet.http.HttpServletRequest;@ControllerAdvice//异常以Json格式返回等同ExceptionHandler+ResponseBody注解//@RestControllerAdvicepublicclassHandlerException{/***自定义业务异常映射,返回JSON格式提示*/@ExceptionHandler(value=ServiceException.class)@ResponseBodypublicReturnExceptionhandler01(HttpServletRequestrequest,ServiceExceptione){ReturnExceptionreturnException=newReturnException();returnException.setCode(600);returnException.setMsg(e.getMessage());returnException.setUrl(String.valueOf(request.getRequestURL()));returnreturnException;}/***服务异常*/@ExceptionHandler(value=Exception.class)publicModelAndViewhandler02(HttpServletRequestrequest,Exceptione){ModelAndViewmodelAndView=newModelAndView();modelAndView.addObject("ExeMsg",e.getMessage());modelAndView.addObject("ReqUrl",request.getRequestURL());modelAndView.setViewName("/exemsg");returnmodelAndView;}}

5、简单的测试接口

@ControllerpublicclassExeController{/***{*"code":600,*"msg":"业务异常:ID不能为空",*"url":"http://localhost:8003/exception01"*}*/@RequestMapping("/exception01")publicStringexception01()throwsServiceException{thrownewServiceException("业务异常:ID不能为空");}@RequestMapping("/exception02")publicStringexception02()throwsException{thrownewException("出现异常,全体卧倒");}}

四、源代码地址

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

以上就是SpringBoot配置系统全局异常映射处理的详细内容,更多关于SpringBoot 异常映射处理的资料请关注其它相关文章!

人生如果错了方向,停止就是进步”。

SpringBoot配置系统全局异常映射处理

相关文章:

你感兴趣的文章:

标签云: