2012-07-27 146 views
0

我试图从Sybase的存储过程中使用RAISERROR捕获我的Java代码中的错误消息,但是没有任何内容被捕获,即使我直接调用proc时,我可以看到错误被抛出。如何在Mybatis-Spring中捕获Sybase RAISERROR?

我的理解是MyBatis的弹簧

转换MyBatis的异常到Spring的DataAccessException的

所以我已经编写我的映射类正是如此:

void insertData(Data toInsert) throws Exception, DataAccessException; 

我试图赶上这两个例外,但都没有被捕获。

有没有人有任何想法?

感谢, 斯蒂芬

回答

0

我发现了如何做到这一点:

try { 
    myMapper.insertData(data); 
} 
catch (org.springframework.jdbc.UncategorizedSQLException e) { 
    Throwable ee = use.getCause(); 
    // getMessage on chained exception gets message from RAISERROR 
    log.error(ee.getMessage(), e); 
} 

干杯, 斯蒂芬