java - DataAccessException无法捕获

  显示原文与译文双语对照的内容
0 0

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


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();
}

像这样的异常:


at rmes.service.demand.DemandService.doCreateCustomerPlanAndDemandForecast(DemandService.java:132)



@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);
 }
 });
}

异常 occues,如何捕获它?

时间: 原作者:

0 0

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

一些可能的解释是:

  • 因为在尝试/捕捉中并没有抛出异常;所以 换句话说,被抛出在其他地方。 仔细阅读完整的 stacktrace stacktrace stacktrace如果这是 true的话,会告诉你。

  • 因为有多个异常称为 DataAccessException ( 在不同的软件包中),并且你试图捕获错误的一个。 如果你仔细阅读了 ,那么你将代码告诉你这是否为。

  • 因为你已经设法把 DataAccessException 多次加载了。 ( 仅当应用程序或者框架在不同的上下文中使用不同的加载器链时才会发生) 。


你对此进行了注释:

除了这个,什么也没有。

这可能就是问题所在。 如果异常没有在上下文thrown抛出这个 try try try this try try try try catch/catch将无法捕捉它 ! 但是,除非你为未被捕获的异常发布完整的rtc,否则我们将无法帮助你。

原作者:
...