6-3课 老师 为什么我抛出的异常不会通过方法来返回?不拦截
来源:6-3 接口请求全局异常处理-设计与验证

黃金葉
2020-05-27
老师,我哪里写漏了吗?,我正常的return可以返回,抛出异常就不行了,不拦截
在spring-servlet.xml里我也注入了 头部引入也没问题
TestController.java package com.mmall.controller; import com.mmall.common.JsonData; import com.mmall.exception.PermissionException; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/test") @Slf4j public class TestController { @RequestMapping("/hello.json") @ResponseBody public JsonData hello(){ log.info("Good!"); throw new RuntimeException("test exception"); //return JsonData.success("Good Morning!"); } }
如果我把抛出异常注释掉,正常return
写回答
2回答
-
你好,看一下那个exceptionReslover的实现
042020-08-11 -
黃金葉
提问者
2020-05-28
package com.mmall.common; import com.mmall.exception.PermissionException; import lombok.extern.slf4j.Slf4j; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Slf4j public class SpringExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { String url = request.getRequestURL().toString(); ModelAndView mv; String defaultMsg = "System error"; // 这里我们要求项目中所有请求json数据,都使用.json结尾 if (url.endsWith(".json")) { if (ex instanceof PermissionException) { JsonData result = JsonData.fail(ex.getMessage()); mv = new ModelAndView("jsonView", result.toMap()); } else { log.error("unknown json exception, url:" + url, ex); JsonData result = JsonData.fail(defaultMsg); mv = new ModelAndView("jsonView", result.toMap()); } } else if (url.endsWith(".page")){ // 这里我们要求项目中所有请求page页面,都使用.page结尾 log.error("unknown page exception, url:" + url, ex); JsonData result = JsonData.fail(defaultMsg); mv = new ModelAndView("exception", result.toMap()); } else { log.error("unknow exception, url:" + url, ex); JsonData result = JsonData.fail(defaultMsg); mv = new ModelAndView("jsonView", result.toMap()); } return mv; } }
00
相似问题