全局异常处理器

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 全局异常处理器,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

  • 前言:由于Controller调用Services,最后调用Mapper来操作数据库,若Mapper操作数据库出问题了,此时页面报错会按照调用的原路径层层上报,最后未经处理的异常会上报至框架,最后服务器会向前端返回一个JSON的报错数据,而前端接收的是对Result封装过的data对象中的JSON数据。

一、异常的处理

1.方案一

  • Controller的方法中进行trycatch处理

这样会变得很繁琐,每个方法都会添加trycatch语句

2.方案二

  • 使用全局异常处理器

简单,优雅,推荐

二、全局异常处理器

  • 定义:
package com.mannor.Exception;

import com.mannor.pojo.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * 全局异常处理器
 */
@RestControllerAdvice
public class globalExceptionHandler {

    @ExceptionHandler(Exception.class)    //定义需要抛出异常的文件类型(Exception.class ---->捕获所有的异常)
    public Result ex(Exception ex) {

        ex.printStackTrace();      //输出异常的堆栈信息
        return Result.error("对不起,操作失败,请联系管理员!");
		
    }
}

前端接收的数据格式是application/json为什么我们封装的是Result数据?
注解:@RestControllerAdvice = @ControllerAdvice + @ResponseBody,@ResponseBody注解将方法的返回值转化为JSON的数据格式,然后再响应回去。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/150364.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!