异常处理以确保全部或全无执行

时间:2014-01-13 05:48:30

标签: java jdbc exception-handling transactions atomicity

我正在创建一个Java应用程序,它必须同时写入数据库并与另一个应用程序通信。这两项任务都应该以全有或全无的方式发生。

try{
  //.. execute JDBC query
  //.. talk to other application
  //.. commit JDBC query
} catch (Exception e){
  //.. rollback JDBC query
} finally {
  //.. close JDBC objects
}

在这种情况下,捕获Exception而不是Exception的子类并回滚是否可以接受?

1 个答案:

答案 0 :(得分:2)

除非你想对不同的异常(似乎不是这种情况)采取不同的行动,否则你所做的是正确的,因为你想做同样的动作而不管异常。

但请注意,请确保记录例外情况。由于您正在处理某个应用程序,因此向其发送某种错误通知也可以帮助谁使用该应用程序。