博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot统一处理异常
阅读量:6683 次
发布时间:2019-06-25

本文共 3076 字,大约阅读时间需要 10 分钟。

在springboot项目,报错有着默认的提示,这篇文章介绍一下如何统一处理异常。

新建项目,pom文件如下:

4.0.0
com.dalaoyang
springboot_error
0.0.1-SNAPSHOT
jar
springboot_error
springboot_error
org.springframework.boot
spring-boot-starter-parent
1.5.9.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
runtime
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin

创建一个IndexController,里面写两个方法,index方法正常跳转,test方法是故意写的一个nullpoint的错误的方法。 代码如下:

package com.dalaoyang.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import java.util.Map;/** * @author dalaoyang * @Description * @project springboot_learn * @package com.dalaoyang.Controller * @email yangyang@dalaoyang.cn * @date 2018/4/28 */@RestControllerpublic class IndexController {    @RequestMapping("/")    public String index(){        return "index";    }    @RequestMapping("/test")    public String test(){        Map map = null;        return map.toString();    }}

启动项目访问,如下图,没有任何问题

9953332-f3488ff63ff87190
image

然后随便访问一个项目里没有的地址,比如,如下图所示,404没有找到:

9953332-586d5940edf48722
image

访问,如下图500错误:

9953332-521829502258d2ba
image

从图上可以看到,springboot报错的时候都在找/error这个地址,这时我们新建一个CommonErrorController来统一处理异常,这个类实现了ErrorController,代码如下:

package com.dalaoyang.Controller;import org.springframework.boot.autoconfigure.web.ErrorController;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;/** * @author dalaoyang * @Description * @project springboot_learn * @package com.dalaoyang.Controller * @email yangyang@dalaoyang.cn * @date 2018/4/28 */@RestControllerpublic class CommonErrorController implements ErrorController {    private final String ERROR_PATH = "/error";    @Override    public String getErrorPath() {        return ERROR_PATH;    }    @RequestMapping(value = ERROR_PATH)    public String handleError(){        System.out.println(getErrorPath());        return "error";    }}

重启项目,在访问和就都返回"error"字符串了,如下:

9953332-2a462d84f3b4fad6
image

源码下载 :

个人网站:

转载地址:http://uliao.baihongyu.com/

你可能感兴趣的文章
判断JavaScript对象为null或者属性为空
查看>>
数组---进制转换(查表法)
查看>>
CSS3实战开发:使用CSS3实现photoshop的过滤效果
查看>>
《看门狗》真人版跑酷!
查看>>
Visual Studio 2015上安装Entity Framework Power Tools
查看>>
git分支重命名
查看>>
Java的设计模式----strategy(策略模式)
查看>>
LOJ 121 「离线可过」动态图连通性——LCT维护删除时间最大生成树 / 线段树分治...
查看>>
appium输入和清除操作各方法对比(android)
查看>>
Linux中网络通信中 使用的结构体
查看>>
视屏接口系列(一 ) ----------VGA(对与数信号显示器要加载A/D,延时拖尾、质量下降)...
查看>>
xmodmap: unable to open display '' Error: Couldn't connect to XServer passing null display
查看>>
Java 动态写轮眼 SharinganJPanel (整理)
查看>>
c++ try_catch throw
查看>>
定时器基础
查看>>
用lucene实现在一个(或者多个)字段中查找多个关键字
查看>>
android系统下替换so库等操作
查看>>
python中的数据类型,存储,实现
查看>>
.htaccess FollowSymlinks影响rewrite功能
查看>>
C++模板&泛型编程
查看>>