SpringBoot异常处理-@ControlleAdvice
@ControllerAdvice+@ExceptionHandler 注解处理异常
需要创建一个能够处理异常的全局异常类。在该类上需要添加@ControllerAdvice 注解
package com.learn.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class DemoController {@RequestMapping("/show")public String showInfo(){String str = null;str.length();return "index";}@RequestMapping("/show2")public String showInfo2(){int a = 10/0;return "index";}}
package com.learn.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
public class UsersController {@RequestMapping("/showUsers")public String showUser(){String str = null;str.length();return "index";}@RequestMapping("/showUsers2")public String showUser2(){int a = 100/0;return "index";}
}
package com.learn.exception;import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;/*** 全局异常处理类**/
@ControllerAdvice
public class GlobalException {/*** java.lang.ArithmeticException* 该方法需要返回一个ModelAndView:目的是可以让我们封装异常信息以及视图的指定* 参数Exception e:会将产生异常对象注入到方法中*/@ExceptionHandler(value={java.lang.ArithmeticException.class})public ModelAndView arithmeticExceptionHandler(Exception e){ModelAndView mv = new ModelAndView();mv.addObject("error", e.toString());mv.setViewName("error1");return mv;}/*** java.lang.NullPointerException* 该方法需要返回一个ModelAndView:目的是可以让我们封装异常信息以及视图的指定* 参数Exception e:会将产生异常对象注入到方法中*/@ExceptionHandler(value={java.lang.NullPointerException.class})public ModelAndView nullPointerExceptionHandler(Exception e){ModelAndView mv = new ModelAndView();mv.addObject("error", e.toString());mv.setViewName("error2");return mv;}}
package com.learn;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class App {public static void main(String[] args) {SpringApplication.run(App.class, args);}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>错误提示页面-ArithmeticException</title>
</head>
<body>出错了,请与管理员联系。。。<span th:text="${error}"></span>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>错误提示页面-NullPointerException</title>
</head>
<body>出错了,请与管理员联系。。。<span th:text="${error}"></span>
</body>
</html>
SpringBoot异常处理-@ControlleAdvice相关推荐
- SpringBoot异常处理的简单理解
Springboot异常处理: 1.局部异常处理: 直接对Controller类进行操作 2.全局统一异常处理 Springboot两种全局异常统一处理的方式: A.使用继承BasicErrorCon ...
- SpringBoot异常处理ErrorController详解
文章目录 一.背景 二.SpringBoot的默认异常处理BasicErrorController 三.自定义错误异常 写在前面: 我是「境里婆娑」.我还是从前那个少年,没有一丝丝改变,时间只不过是考 ...
- SpringBoot异常处理以及对数据正确性的检查
SpringBoot异常处理以及对数据正确性的检查 一个项目中的异常处理是非常沉重的话题,每次做项目中如果异常处理的不好,轻微一点的会让测试人员找到你的问题,严重点的会把报错的日志打印给客户展示,这可 ...
- springboot异常处理方式
springboot异常处理方式 参考文章: (1)springboot异常处理方式 (2)https://www.cnblogs.com/whalesea/p/11384397.html 备忘一下.
- Springboot异常处理errorController
Springboot异常处理errorController 参考文章: (1)Springboot异常处理errorController (2)https://www.cnblogs.com/jiah ...
- SpringBoot异常处理
文章目录 springboot处理异常的5种方式 1.自定义错误页面 2.@ExceptionHandle 注解处理异常 3.@ControllerAdvice+@ExceptionHandler 注 ...
- 【springboot异常处理】用异常信息枚举类处理异常,使用自定义异常封装异常对象,返回统一异常处理结果
1.目录: 异常信息枚举类 自定义异常类 自定义响应数据 全局异常处理类 测试 总结 异常信息枚举类 由于在业务中,有很多异常,针对不同的业务,可能给出的提示信息不同,所以为了方便项目异常信息管理,我 ...
- SpringBoot异常处理-自定义HandlerExceptionResolver
需要再全局异常处理类中实现HandlerExceptionResolver 接口 package com.learn.exception;import javax.servlet.http.HttpS ...
- SpringBoot异常处理-SimpleMappingExceptionResolver
在全局异常类中添加一个方法完成异常的同一处理 package com.learn.exception;import java.util.Properties;import org.springfram ...
最新文章
- 用指针式万用表欧姆档检测发光二极管
- golang 基础知识4
- python实现scp功能_转python实现ftp,scp的实现
- JavaScript中七种函数调用方式及对应 this 的含义
- html5up ui开源框架,ZUI-HTML5前端 UI 框架
- 洛谷 1341 无序字母对
- 2014东师计算机应用基础离线作业,2014秋东师《计算机应用基础》离线作业及答案...
- win10家庭版无法安装mysql_Win10安装MySQL
- IOS之Autorotation and Autosizing
- Redis从入门到精通:中级篇
- cmd命令结束端口进程
- 软件调试书籍资料汇总
- Lua调试:getinfo详解
- D2RQ 的安装和基本使用
- 带图傻瓜式自己动手修改新浪微博各种尾巴
- wan口有流量但电脑上不了网_路由器wan口流量_双WAN口路由器配置(WAN口设置/WAN口在线检测/流量均衡控制)_路由器检测不到wan...
- 微星MS16j9鼠标面板可以移动指针,无法通过面板点击
- java判断字符串长度_java判断中文字符串长度的简单实例
- ASM - 指令01 MOV
- 编辑距离与语音识别中WER的计算
热门文章
- Linux 学习_ssh(secure shell)
- spring-cloud 学习三 服务提供者
- 服务器架设篇-----CentOS架设WWW服务器-Nginx+Mysql+PHP
- HDU 3123 GCC(同余模定理)
- MariaDB Java Client 1.1.0 发布
- 对jquery的conflict方法的解读
- [z]Qt 内存管理机制
- 极简教程: 使用 matplotlib 绘制 GIF 动图
- 将登录等信息保存到session中和退出session
- Android开发学习——Android Studio配置SVN