作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个 java 应用程序,在此之前所有操作都是在多线程应用程序的 run 函数中完成的。现在我们正在将一些代码移至单独的函数中。我们必须将一些变量设置为全局变量,包括连接,以便可以在函数中使用它。下面是函数的运行和调用的框架。现在的问题是那些在 if 语句中处理的查询,它们遇到问题,然后整个事情进入捕获和回滚。现在的问题是,那些在 processOne 函数中调用的函数,如果它们遇到任何 catch,则在 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){
}
}
}
最佳答案
您需要做的就是从 processOne
函数抛出异常,然后在“run”函数中捕获它并回滚事务:
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){
}
}
catch (Exception ex){
try{
dbconn.rollback();
}
catch (Exception rollback){
}
}
}
void processOne() throws Exception{
//process queries here
}
}
这样整个过程就会回滚。
关于java - 跨职能管理交易,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11920994/
我正在尝试自学 C++ 中的类,但我遇到了一些绊脚石,似乎无法清除。我希望有人能为我指明正确的方向。 我决定构造一个小的 Tree 类,它构造一个新的 BST。我希望能够像这样在我的对象上调用某些方法
有没有办法只从 ClojureQL 的 disj 生成 sql 查询!连接!和更新!函数,而不是直接执行它们? 最佳答案 不,这些方法是直接执行各自准备好的语句。它们都很基础。对于 conj!和 up
我是一名优秀的程序员,十分优秀!