@Controller public class AccessController { /** * 异常页面控制 * * @param runtimeException * @return */ @ExceptionHandler(RuntimeException.class) public @ResponseBody Map<String,Object> runtimeExceptionHandler(RuntimeException runtimeException) { logger.error(runtimeException.getLocalizedMessage()); Map model = new TreeMap(); model.put("status", false); return model; } }
当这个Controller中任何一个方法发生异常,一定会被这个方法拦截到。然后,输出日志。封装Map并返回,页面上得到status为false。就这么简单。
或者这个有些有些复杂,来个简单易懂的,上代码:
@Controller public class AccessController { /** * 异常页面控制 * * @param runtimeException * @return */ @ExceptionHandler(RuntimeException.class) public String runtimeExceptionHandler(RuntimeException runtimeException, ModelMap modelMap) { logger.error(runtimeException.getLocalizedMessage()); modelMap.put("status", IntegralConstant.FAIL_STATUS); return "exception"; } }
本文介绍了一种简单的异常处理方法,通过@Controller注解的类中的@ExceptionHandler注解实现对RuntimeException的全局捕获与处理,同时记录异常日志,并向客户端返回状态信息。
910

被折叠的 条评论
为什么被折叠?



