最近,在写项目的时候,遇到这样一个需求,即批量执行数据库授权语句(grant ),当n条授权语句内某一条授权语句,执行失败后,记录其错误信息,然后继续执行剩下的grant 语句,最后在吧错误信息统一抛出。
这里给解决思路:
1.首先,我们需要捕获到sql执行的错误。
try{
jdbc.execute(sql);
}catch(Exception e)
{
......//在此记录下错误信息
}
2. 如何记录错误信息
建议做法:StringBuilder message =new StringBuilder();
try{
jdbc.execute(sql);
}catch(Exception e)
{
......//在此记录下错误信息
//你也可以在此对错误信息进行处理
message.append(e.getMessage);
}
3.完成了一次错误信息捕获
4.批量执行sql语句
for(....)
{
try{
jdbc.execute(sql);
}catch(Exception e)
{
......//在此记录下错误信息
//你也可以在此对错误信息进行处理
message.append(e.getMessage);
}
}
这样就能够在for 循环全部执行后,在抛出异常信息。
5.如果你想要出现错误就抛出异常
可以 如下做法:
for(....)
{
try{
jdbc.execute(sql);
}catch(Exception e)
{
......//在此记录下错误信息
//你也可以在此对错误信息进行处理
message.append(e.getMessage);
return message;
}
}
try catch 的使用方式即是,若catch 内不直接返回结果的话,它会跳过此次发生错误的sql执行,继续循环剩余的sql。