我们有一个 java 应用程序,在此之前,这一切都是在多线程应用程序的 run 函数中完成的。现在我们将一些代码移到一个单独的函数中。我们必须将一些变量设置为全局变量,包括连接,以便它可以在函数中使用。下面是函数的运行和调用的骨架。现在的问题是那些在 if 语句中处理的查询并且它们遇到问题然后整个事情进入捕获和回滚。现在的问题是那些在 processOne 函数中调用的函数,如果它们遇到任何问题,则会捕获在 if else 执行之后运行的一般查询。有什么方法可以停止或将其链接到 processOne 错误?我们的想法是使用全局变量,因为尝试了其中的 dbConn.rollback 也确实有效。
public void run() {
try{
if(){
//process here
}
else{
// call function processOne
}
//some other general queries
dbconn.commit();
}
catch (SQLException ex){
try{
dbconn.rollback();
}
catch (Exception rollback){
}
}
}
void processOne(){
try{
//process queries here
catch (SQLException ex){
try{
dbconn.rollback();
}
catch (Exception rollback){
}
}
}