首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataAccessException抓不到

问DataAccessException抓不到
EN

Stack Overflow用户
提问于 2014-12-14 07:32:44
回答 1查看 574关注 0票数 1

我的代码有一个DataAccessException,但是它不能被捕获,为什么?

代码语言:javascript
复制
CustomerPlan newCust = data.customerPlan;
try {
    this.demandService.doCreateCustomerPlanAndDemandForecast(newCust,
            newDf);
} catch (DataAccessException de) {
    log.info("de ------------------------------------");
    de.printStackTrace();
    log.info("de  end ------------------------");
} catch (Exception le) {
    log.info("de ------------------------------------");
    le.printStackTrace();
    log.info("de  end ------------------------");
} catch (Throwable t) {
    log.info("tttttttttttttttttttttttt");
    t.printStackTrace();
}

像这样的例外:

代码语言:javascript
复制
at rmes.service.demand.DemandService.doCreateCustomerPlanAndDemandForecast(DemandService.java:132)

代码语言:javascript
复制
@Override
public Serializable save(final Object entity) throws DataAccessException {
    return executeWithNativeSession(new HibernateCallback<Serializable>() {
        @Override
        public Serializable doInHibernate(Session session) throws HibernateException {
            checkWriteOperationAllowed(session);
            return session.save(entity);
        }
    });
}

异常发生在这里,如何抓住它?

EN

回答 1

Stack Overflow用户

发布于 2014-12-14 07:46:38

我的代码有一个DataAccessException,但是它不能被捕获,为什么?

一些可能的解释是:

  • 因为异常不是在尝试/捕捉中抛出的;也就是说,它是在其他地方抛出的。(仔细阅读完整的堆栈跟踪将告诉您这是否属实。)
  • 因为有多个名为DataAccessException的异常(在不同的包中),所以您试图捕获错误的异常。(仔细阅读完整的堆栈跟踪并编写代码将告诉您这是否属实。)
  • 因为您已经设法多次加载了DataAccessException。(只有当您的应用程序或框架在不同的上下文中使用不同的类加载器链时才会发生这种情况;例如,如果您有多个web应用程序,一个典型的web容器就会这样做。)

你这样评论:

除了这个,任何地方都没有渔获。

这可能就是问题所在。如果在此try / catch的上下文中没有抛出异常,则此try / catch将无法捕获它!但是,除非您发布未被捕获的异常的完整堆栈跟踪,否则我们将无法帮助您。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27467285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档