SSM 框架发生异常后,继续处理

pujitan978 2019-02-27 08:53:57
框架是SSM框架,例外异常的时候,想把异常log输出到Log中,然后程序能继续处理,不退出。
我的实现是用 HandlerExceptionResolver 的resolveException函数统一处理异常,把例外异常输出到log里.然后return null.
但是,如果数据库查询发生异常,后面处理就不能继续了。

例如,一个循环里,要操作数据库(查询,如果查询异常,想得到NULL对象或者空List,根据null或者是空,本次循环不处理,
其他循环继续),不想某次操作失败,后面的循环就不执行了,该怎么实现呢。

public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
logger.error("Exception " + e.getMessage(),e);
return null;
}
...全文
280 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhiluan7665 2019-03-19
  • 打赏
  • 举报
回复
在service 层加try catch捕获异常,异常时如果是list返回一个list.size()是0,如果不是返回NULL。在controler层判断返回值 NULL list.size()==0 决定是否退出处理,和继续处理
nayi_224 2019-02-27
  • 打赏
  • 举报
回复
这样可能会破坏事务,产生脏数据。如果你确定要这么做的话,就把try catch写到循环里

		Object obj;
for(int i = 0; i < 10; i++){
try{
obj = ......;
}catch(Exception e){
logger.error("Exception " + e.getMessage(),e);
obj = null;
continue;
}

}
nayi_224 2019-02-27
  • 打赏
  • 举报
回复
这样可能会破坏事务,产生脏数据。如果你确定要这么做的话,就把try catch写到循环里

		Object obj;
for(int i = 0; i < 10; i++){
try{
obj = ......;
}catch(Exception e){
logger.error("Exception " + e.getMessage(),e);
obj = null;
continue;
}

}

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧