我是 Spring 框架的新手。使用 Spring 4.3 和 Hibernate 4 开发 Web 应用程序。我配置了所需的bean。<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="${oracle.driver-calss}" /> <property name="url" value="${oracle.Url}" /> <property name="username" value="${oracle.userName}" /> <property name="password" value="${oracle.password}" /></bean><bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${oracle.dialect}</prop> <prop key="hibernate.hbm2ddl.auto">${oracle.hbm2ddl}</prop> <prop key="hibernate.show-sql">${oracle.show-sql}</prop> </props> </property> <property name="dataSource" ref="dataSource" /> <property name="packagesToScan" value="com.wmosIIBL.model"></property></bean><bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory" /></bean><tx:annotation-driven />这是我的服务类@Servicepublic class ItemIBLService { @Autowired ItemIBLDaoImpl itemIBLDaoImpl; @Transactional public ItemInvnByLcn getItemIBLByDspLocn(String dspLocn) { ItemInvnByLcn itemInvnByLcn = null; try { itemIBLDaoImpl.getIBLByDspLocn(dspLocn); } catch (DataAccessException dataAccessException) { System.out.println(dataAccessException.getMessage().toString()); } return itemInvnByLcn; }}DAO Impl 代码:我故意犯一些错误来创建异常。所以请忽略代码错误并帮助我找到如何捕获抛出的异常。
2 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
org.hibernate.QueryParameterException不是DataAccessException(您试图捕获的那个)的子类,正如您在其javadoc 中看到的那样。如果您想捕获它,您应该将此异常添加到您的 catch 块中。这是一个RuntimeException,所以如果你忽略它像你这样的编译器不吭声。
试试这个:
try {
itemIBLDaoImpl.getIBLByDspLocn(dspLocn);
} catch (DataAccessException | QueryParameterException exception) {
System.out.println(exception.getMessage());
}
添加回答
举报
0/150
提交
取消