您的位置:首页 > 编程语言 > Java开发

spring boot之统一异常处理

2019-01-09 10:07 911 查看

spring boot 在请求接口时,如果发生错误,会默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来展示异常内容。

但是在实际应用中,上面你的错误页面对用户来说并不够友好,也不规范。

我们可以自己创建异常处理类。

需要给这个类加上@ControllerAdvice注解

并写一个统一处理异常的方法。

需要在处理方法上添加注解@ExceptionHandler(value = Exception.class)

需要返回接口结果,就加上@ResponseBody注解,需要返回统一的页面,就去掉@ResponseBody注解,返回html页面的名称,并在页面里处理异常信息。

package com.example.demo.exception;

import java.util.HashMap;
import java.util.Map;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
* 全局捕获异常类,只要作用在@RequestMapping上,所有的异常都会被捕获
*/
@ControllerAdvice
@ResponseBody
public class MyExceptionHandler {
@ExceptionHandler(value = Exception.class)
public Map<String, Object> errorHandle(Exception e) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", -1);
map.put("msg", e.getMessage());
return map;
}
}

 

(adsbygoogle = window.adsbygoogle || []).push({});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Spring Spring Boot