我是 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
提交
取消