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@ResponseBodypublic class MyExceptionHandler { @ExceptionHandler(value = Exception.class) public MaperrorHandle(Exception e) { Map map = new HashMap (); map.put("code", -1); map.put("msg", e.getMessage()); return map; }}