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

SpringMVC_异常处理

2015-12-04 15:04 309 查看

1 异常处理思路:

系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过补货异常从而获取异常信息,后者主要通过规范代码开发,测试通过手段减少运行时异常的发生
系统的dao service controller出现都通过throws Exception向上抛出,最后由springMVC前端控制器交由异常处理器进行异常处理:

2 自定义异常类:

对不同的异常类型定义异常类,继承Exception

3 全异常处理器

思路:
系统遇到异常,在程序中手动抛出,dao抛给service service抛给controller,controller抛给前端控制器,前端控制器调用全局异常处理器
全局异常处理器处理思路:
解析出异常类型
如果该异常类型是系统自定义的异常 直接取出异常信息 错误页面展示
如果该异常类型不是系统自定义的异常,构造一个自定义的异常类型(信息为“位置错误”)

springMVC提供一个HandlerExceptionresolver接口
@Override
	public ModelAndView resolveException(HttpServletRequest request,
			HttpServletResponse response, Object handler, Exception ex) {
		//handler就是处理器适配器要执行Handler对象(只有method)
		
//		解析出异常类型
//		如果该 异常类型是系统 自定义的异常,直接取出异常信息,在错误页面展示
//		String message = null;
//		if(ex instanceof CustomException){
//			message = ((CustomException)ex).getMessage();
//		}else{
////			如果该 异常类型不是系统 自定义的异常,构造一个自定义的异常类型(信息为“未知错误”)
//			message="未知错误";
//		}
		
		//上边代码变为
		CustomException customException = null;
		if(ex instanceof CustomException){
			customException = (CustomException)ex;
		}else{
			customException = new CustomException("未知错误");
		}
		
		//错误信息
		String message = customException.getMessage();
		
		
		ModelAndView modelAndView = new ModelAndView();
		
		//将错误信息传到页面
		modelAndView.addObject("message", message);
		
		//指向错误页面
		modelAndView.setViewName("error");

		
		return modelAndView;
	}

4 springmvc.xml配置全局异常处理器

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: