服务器之家

服务器之家 > 正文

java异常处理拦截器详情

时间:2022-02-25 00:48     来源/作者:左直拳

使用异常处理拦截器,可以不用写那么多try…catch…。

我有个功能,就是前端提交短信内容到后端,后端进行一系列的处理,其中是要将短信内容提交到公共短信接口。微服务框架,公共短信接口是另外一个服务。这样子就会有一个隐患,假如这个服务不开,或者因为网络原因无法访问,怎么办?

可以原子操作,也可以重新提交啥的,不管怎么搞,错误提示是避免不了的。问题是,系统赤裸裸的贴代码的错误提示方式,极不友好。应当捕获这个错误,然后改用较为友好的内容进行提示。

最原始的办法,可以层层try…catch…,service一直到controller这里返回给前端。但未免太繁琐,感觉很low。作为程序员,不应当这么机械。

参照网上办法,在controller这里设置一个异常处理拦截器:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@RestController
@RequestMapping("sms/order")
public class DzSmsSendOrderController {
 
 。。。
 
    @ExceptionHandler(value = {
 RuntimeException.class})
    public ResultBody handleRuntimeException(Exception ex) throws Exception {
 
        if (ex.getMessage().indexOf("project-sms-api") != -1) {
 //鉴别一下是否为目标异常
            return ResultBody.failed().msg("访问短信接口失败,请确认相关服务是否已开启");
        } else throw ex;
    }
}

这个ResultBody是一个自定义的对象,前端根据其返回的编号等判断是否成功。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@ApiModel(value = "响应结果")
public class ResultBody<T> implements Serializable {
 
 。。。
 
    public static ResultBody failed() {
 
        return new ResultBody().code(ErrorCode.FAIL.getCode()).msg(ErrorCode.FAIL.getMessage());
    }
    
    @Override
    public String toString() {
 
        return "ResultBody{" +
                "code=" + code +
                ", message='" + message + '\'' +
                ", path='" + path + '\'' +
                ", data=" + data +
                ", httpStatus=" + httpStatus +
                ", extra=" + extra +
                ", timestamp=" + timestamp +
                '}';
    }
}
 
public enum ErrorCode {
 
    OK(0, "success"),
    FAIL(1000, "fail"),
    ALERT(1001, "alert"),
}

前端就根据这个code,来判断成功与否。

到此这篇关于java异常处理拦截器详情的文章就介绍到这了,更多相关java异常处理拦截器内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/leftfist/article/details/120888027

相关文章

热门资讯

蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整
蜘蛛侠3英雄无归3正片免费播放 蜘蛛侠3在线观看免费高清完整 2021-08-24
2022年最旺的微信头像大全 微信头像2022年最新版图片
2022年最旺的微信头像大全 微信头像2022年最新版图片 2022-01-10
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
返回顶部