J2EE异常处理写法总结
来源:互联网 发布:中文域名在线转码程序 编辑:程序博客网 时间:2024/06/07 18:07
底层封装上抛,顶层捕获处理,自己定义异常,定位问题迅速
1.dao层写法:
public static Member memberLogin(String loginname, String password) throws MemberException { String sql = "select * from t_XXX where f_login_name = ? and f_password = ?";db().beginTransaction();Member member = null;try {member = db().getObject(sql, new Object[] { loginname, password }, Member.class);} catch (DbAccessException e) {e.printStackTrace();throw new MemberException("D001","很抱歉,登录验证出现了问题,请稍后重试",e);} finally {db().endTransaction();}return member;}
2.MemberServiceDBImpl:
public Member memberLogin(String loginname, String password) throws MemberException {try {return MemberUtil.memberLogin(loginname,password);} catch (MemberException e) {throw e;}}
3.MemberServiceAgent
public Member memberLogin(String loginname,String password) throws MemberException{return impl.memberLogin(loginname,password);}
4.MemberDataService
public static PageResultData memberLogin(String loginname,String password) throws MemberException{PageResultData result = new PageResultData();JSONObject data = new JSONObject();Member member = null;try{...try{member = MemberServiceAgent.instance().memberLogin(loginname, password);}catch(MemberException e){throw e;}}catch(Exception e){e.getStackTrace();throw new MemberException("S001","很抱歉,登录验证出现了问题,请稍后重试",e);}return result;}
5.LoginPageAction
@RequestMapping(value = "/login.htm", method = RequestMethod.POST)public ModelAndView doLogin(Model model, HttpServletRequest request, String memberName, String password,RedirectAttributes redirect) throws Exception{try {try {...} catch (CmsException | UnitException |MemberException e) {throw e;}} catch (Exception e) {e.printStackTrace();throw new MemberException("C001","很抱歉,登录验证出现了问题,请稍后重试",e);}}
6.自定义异常
public class MemberException extends Exception { private static final long serialVersionUID = 1; private String errorCode; private String errorMessage; public MemberException(){} public MemberException(String errorCode, String errorMessage,Exception e) { super(errorMessage, e); this.errorCode = errorCode; this.errorMessage = errorMessage; }public String getErrorCode() {return errorCode;}public void setErrorCode(String errorCode) {this.errorCode = errorCode;}public String getErrorMessage() {return errorMessage;}public void setErrorMessage(String errorMessage) {this.errorMessage = errorMessage;}}
7.异常处理类
public class MyExceptionHandler implements HandlerExceptionResolver { public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { Map<String, Object> model = new HashMap<String, Object>(); model.put("ex", ex); // 根据不同错误转向不同页面 if(ex instanceof BusinessException) { BusinessException b=(BusinessException) ex; model.put("message", b.getErrorMessage()); return new ModelAndView("error-business", model); }else if(ex instanceof MemberException) { MemberException b=(MemberException) ex; model.put("message", b.getErrorMessage()+",错误代码:"+b.getErrorCode()); return new ModelAndView("error-business", model); }else if(ex instanceof ParameterException) { return new ModelAndView("error-parameter", model); } else { return new ModelAndView("error", model); } } }
Xml配置:
<bean id="exceptionHandler" class="com.mixky.cstam.action.test.MyExceptionHandler"/>
0 0
- J2EE异常处理写法总结
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE 异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- j2ee异常处理机制
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- J2EE项目异常处理
- 【鸟哥私房菜】第二十章 Linux启动流程分析
- Win32窗体应用程序如何添加资源文件?
- 面试题-华为-空瓶换饮料问题-1
- wifi网络结构(上)
- WebService之XFire和SOAP实例(基于JAVA)
- J2EE异常处理写法总结
- Android 流式布局LinearLayout
- 博客笔记总结2
- Material Design (四) TabLayout的使用
- Docker基本介绍
- __toString方法
- JAVAWEB开发模式之JSP的几种开发模式、处理Cookie中文乱码
- Angular 拦截器(403、401)
- servlet 的乱码问题