SpringBoot2中如何配置系统全局异常映射处理
发表于:2024-10-14 作者:千家信息网编辑
千家信息网最后更新 2024年10月14日,这篇文章给大家分享的是有关SpringBoot2中如何配置系统全局异常映射处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、异常分类这里的异常分类从系统处理异常的角度看
千家信息网最后更新 2024年10月14日SpringBoot2中如何配置系统全局异常映射处理
这篇文章给大家分享的是有关SpringBoot2中如何配置系统全局异常映射处理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
一、异常分类
这里的异常分类从系统处理异常的角度看,主要分类两类:业务异常和系统异常。
1、业务异常
业务异常主要是一些可预见性异常,处理业务异常,用来提示用户的操作,提高系统的可操作性。
常见的业务异常提示:
1)请输入xxx
2)xxx不能为空
3)xxx重复,请更换
2、系统异常
系统异常主要是一些不可预见性异常,处理系统异常,可以让展示出一个友好的用户界面,不易给用户造成反感。如果是一个金融类系统,在用户界面出现一个系统异常的崩溃界面,很有可能直接导致用户流失。
常见的系统异常提示:
1)页面丢失404
2)服务器异常500
二、解决应用启动后404界面
1、引入页面Jar包
org.springframework.boot spring-boot-starter-thymeleaf
2、自定义首页接口
import org.springframework.stereotype.Controller;import org.springframework.ui.ModelMap;import org.springframework.web.bind.annotation.RequestMapping;@Controllerpublic class IndexController { @RequestMapping("/") public String index(ModelMap modelMap) { modelMap.addAttribute("name","知了一笑") ; return "index"; }}
3、首页界面
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; // 请求的Url private 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 注解// @RestControllerAdvicepublic class HandlerException { /** * 自定义业务异常映射,返回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 ; } /** * 服务异常 */ @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、简单的测试接口
@Controllerpublic 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("出现异常,全体卧倒"); }}
感谢各位的阅读!关于"SpringBoot2中如何配置系统全局异常映射处理"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
系统
处理
业务
用户
界面
提示
格式
分类
全局
配置
内容
常见
接口
更多
注解
用户界面
篇文章
页面
首页
服务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全杜绝垃圾食品简单
机载产品软件开发程序
jsp登录按钮连接数据库
自动备份数据库并导入到新数据库
网络安全靠大家班会内容大全
戴尔服务器网卡nic
潍坊工具管理软件开发
linux服务器远程备份
oralce数据库打补丁
软件开发人员有哪些资质
数据库打包和压缩命令
下列关于数据库中索引的描述
违反网络安全管理法
app云服务器优缺点
服务器的样子
移动软件开发工资待遇
erp属于什么数据库
网络安全生态试卷9答案
无锡通用软件开发电子
crm开发数据库
comcat部署数据库
hp服务器管理口进系统
国家网络安全示范工程
数据库安全权限
数据库考勤管理系统怎么做
青岛市教育局网络安全
数据库 内存
衢州桌面软件开发费用
华通银行软件开发部
江苏工业软件开发批发价