浏览 2080 次
锁定老帖子 主题:service层的异常为什么不能被捕获?
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2008-04-25
public void delCardType(String[] id) throws Exception { try { for (int i = 0; i < id.length; i++) { CardType ct = (CardType) dao.get(CardType.class, id[i]); dao.delete(ct); } log.info("=========开始删除关系========"); goods.deleteCardsRelationshipByCTId(id); log.info("=========删除关系结束========"); } catch (ConstraintViolationException cve) { throw new DataOperationException("卡目录已经被引用:", cve); } catch (Exception e) { throw new DataOperationException("删除卡类型异常:", e); } } 该方法通过ejb的接口在某删除acation中去调用。service中日志log.info("=========删除关系结束========"); 都已经输出 且deleteCardsRelationshipByCTId也已经被执行。但是在action却进入到了exception方法内部。输出日志log.info("======================调用remoteInterface.delCardType(id)方法失败了================="); public ActionForward doIt(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { try { log.info("***************已经进入DelCardTypeAction*************"); String[] id=request.getParameterValues("checkbox"); remoteInterface.delCardType(id); log.info("****************调用remoteInterface.delCardType(id)方法*************"); ProcessResult pr = ProcessResult.createInfoResult("delete.success","卡类型"); request.setAttribute("pr", pr); return mapping.findForward("go"); }catch (Exception e) { log.info("======================调用remoteInterface.delCardType(id)方法失败了================="); ProcessResult pr = ProcessResult.createErrorResult("对不起,您所选择删除的卡类型已经被引用,删除失败",e); request.setAttribute("pr", pr); return mapping.findForward("error"); } } 请高手们指点! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-04-25
remoteInterface.delCardType(id);
log.info("****************调用remoteInterface.delCardType(id)方法*************"); ProcessResult pr = ProcessResult.createInfoResult("delete.success","卡类型"); 上面2个 方法 放在一个try catch语句里,如果createInfoResult方法抛出异常,你的log也会输出 info("======================调用remoteInterface.delCardType(id)方法失败了================="); |
|
返回顶楼 | |