Spring 注解学习手札(八)补遗——@ExceptionHandler

@RequestBody@ResponseBody,不费吹灰之力就解决了JSon自动绑定。接着就发现,如果遇到 RuntimeException,需要给出一个默认返回JSON。

以前都是用 SimpleMappingExceptionResolver拦截实现,今天偶尔看下资料, @ExceptionHandler,就把这个异常给拦截了,太方便了!

相关参考:
Spring 注解学习手札(一) 构建简单Web应用
Spring 注解学习手札(二) 控制层梳理
Spring 注解学习手札(三) 表单页面处理
Spring 注解学习手札(四) 持久层浅析
Spring 注解学习手札(五) 业务层事务处理
Spring 注解学习手札(六) 测试
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
Spring 注解学习手札(八) 补遗——@ExceptionHandler



直接上代码:
@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";
	}
}


相关参考:
Spring 注解学习手札(一) 构建简单Web应用
Spring 注解学习手札(二) 控制层梳理
Spring 注解学习手札(三) 表单页面处理
Spring 注解学习手札(四) 持久层浅析
Spring 注解学习手札(五) 业务层事务处理
Spring 注解学习手札(六) 测试
Spring 注解学习手札(七) 补遗——@ResponseBody,@RequestBody,@PathVariable
Spring 注解学习手札(八) 补遗——@ExceptionHandler

转载于:https://my.oschina.net/mohaiyong/blog/221260

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值