Sql server JDBC SQL Server在多语句存储过程中引发错误处理

Sql server JDBC SQL Server在多语句存储过程中引发错误处理,sql-server,jdbc,Sql Server,Jdbc,我有一个多语句存储过程,它首先执行select,然后在满足某些条件时引发错误 然而,存储过程中的raise错误不会像我预期的那样导致JDBCSQLException 如果我删除SELECT,那么它可以正常工作 我有多种其他方法来处理此问题,但为了将来参考,我想知道是否有方法检查是否存在引发的错误。SQL server协议的工作方式是,您首先需要处理select生成的结果集,然后移动到下一个结果以获取异常 要处理所有结果(结果集、更新计数和异常),您需要执行以下操作: CallableStatem

我有一个多语句存储过程,它首先执行select,然后在满足某些条件时引发错误

然而,存储过程中的raise错误不会像我预期的那样导致JDBCSQLException

如果我删除SELECT,那么它可以正常工作


我有多种其他方法来处理此问题,但为了将来参考,我想知道是否有方法检查是否存在引发的错误。

SQL server协议的工作方式是,您首先需要处理select生成的结果集,然后移动到下一个结果以获取异常

要处理所有结果(结果集、更新计数和异常),您需要执行以下操作:

CallableStatement csmt=。。。;
布尔值isResultSet=cstmt.execute();
做{
if(isResultSet){
//过程结果集
try(ResultSet rs=csmst.getResultSet()){
while(rs.next()){
// ...
}
}
}否则{
int updateCount=rs.getUpdateCount();
如果(updateCount==-1){
//-1当isResultSet==false时表示:没有更多结果
打破
}否则{
//对更新计数做些什么
}
}
isResultSet=cstmt.getMoreResults();
}虽然(正确);
当存储过程的执行达到异常时,这也会将异常报告给java应用程序(iirc from
getMoreResults()