@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相关推荐

  1. SpringBoot异常处理的简单理解

    Springboot异常处理: 1.局部异常处理: 直接对Controller类进行操作 2.全局统一异常处理 Springboot两种全局异常统一处理的方式: A.使用继承BasicErrorCon ...

  2. SpringBoot异常处理ErrorController详解

    文章目录 一.背景 二.SpringBoot的默认异常处理BasicErrorController 三.自定义错误异常 写在前面: 我是「境里婆娑」.我还是从前那个少年,没有一丝丝改变,时间只不过是考 ...

  3. SpringBoot异常处理以及对数据正确性的检查

    SpringBoot异常处理以及对数据正确性的检查 一个项目中的异常处理是非常沉重的话题,每次做项目中如果异常处理的不好,轻微一点的会让测试人员找到你的问题,严重点的会把报错的日志打印给客户展示,这可 ...

  4. springboot异常处理方式

    springboot异常处理方式 参考文章: (1)springboot异常处理方式 (2)https://www.cnblogs.com/whalesea/p/11384397.html 备忘一下.

  5. Springboot异常处理errorController

    Springboot异常处理errorController 参考文章: (1)Springboot异常处理errorController (2)https://www.cnblogs.com/jiah ...

  6. SpringBoot异常处理

    文章目录 springboot处理异常的5种方式 1.自定义错误页面 2.@ExceptionHandle 注解处理异常 3.@ControllerAdvice+@ExceptionHandler 注 ...

  7. 【springboot异常处理】用异常信息枚举类处理异常,使用自定义异常封装异常对象,返回统一异常处理结果

    1.目录: 异常信息枚举类 自定义异常类 自定义响应数据 全局异常处理类 测试 总结 异常信息枚举类 由于在业务中,有很多异常,针对不同的业务,可能给出的提示信息不同,所以为了方便项目异常信息管理,我 ...

  8. SpringBoot异常处理-自定义HandlerExceptionResolver

    需要再全局异常处理类中实现HandlerExceptionResolver 接口 package com.learn.exception;import javax.servlet.http.HttpS ...

  9. SpringBoot异常处理-SimpleMappingExceptionResolver

    在全局异常类中添加一个方法完成异常的同一处理 package com.learn.exception;import java.util.Properties;import org.springfram ...

最新文章

  1. 用指针式万用表欧姆档检测发光二极管
  2. golang 基础知识4
  3. python实现scp功能_转python实现ftp,scp的实现
  4. JavaScript中七种函数调用方式及对应 this 的含义
  5. html5up ui开源框架,ZUI-HTML5前端 UI 框架
  6. 洛谷 1341 无序字母对
  7. 2014东师计算机应用基础离线作业,2014秋东师《计算机应用基础》离线作业及答案...
  8. win10家庭版无法安装mysql_Win10安装MySQL
  9. IOS之Autorotation and Autosizing
  10. Redis从入门到精通:中级篇
  11. cmd命令结束端口进程
  12. 软件调试书籍资料汇总
  13. Lua调试:getinfo详解
  14. D2RQ 的安装和基本使用
  15. 带图傻瓜式自己动手修改新浪微博各种尾巴
  16. wan口有流量但电脑上不了网_路由器wan口流量_双WAN口路由器配置(WAN口设置/WAN口在线检测/流量均衡控制)_路由器检测不到wan...
  17. 微星MS16j9鼠标面板可以移动指针,无法通过面板点击
  18. java判断字符串长度_java判断中文字符串长度的简单实例
  19. ASM - 指令01 MOV
  20. 编辑距离与语音识别中WER的计算

热门文章

  1. Linux 学习_ssh(secure shell)
  2. spring-cloud 学习三 服务提供者
  3. 服务器架设篇-----CentOS架设WWW服务器-Nginx+Mysql+PHP
  4. HDU 3123 GCC(同余模定理)
  5. MariaDB Java Client 1.1.0 发布
  6. 对jquery的conflict方法的解读
  7. [z]Qt 内存管理机制
  8. 极简教程: 使用 matplotlib 绘制 GIF 动图
  9. 将登录等信息保存到session中和退出session
  10. Android开发学习——Android Studio配置SVN