How to catch exception on RollBack
        Posted  
        
            by Jagd
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Jagd
        
        
        
        Published on 2010-04-05T16:28:14Z
        Indexed on 
            2010/04/05
            16:33 UTC
        
        
        Read the original article
        Hit count: 321
        
.NET
|exception-handling
What is the best way to implement error handling for a SqlTransaction RollBack that already exists within a catch clause? My code is roughly like this:
using (SqlConnection objSqlConn = new SqlConnection(connStr)) {
  objSqlConn.Open();
  using (SqlTransaction objSqlTrans = objSqlConn.BeginTransaction()) {
    try {
      // code
      // more code
      // and more code
    }
    catch (Exception ex) {
      // What happens if RollBack() has an exception?
      objSqlTrans.Rollback();
      throw ex;
    }
  }
}
I believe that my application had an exception in the try block, which in turn was caught in the catch block and then the RollBack was attempted. However, the error that I'm seeing says something about a SqlTransaction.ZombieCheck(), which is making me wonder if the RollBack() itself threw an exception as well. So, do I need to implement some type of error handling at the RollBack()? How do I do that and manage to hold on to the exception that put the execution into the catch block in the first place?
© Stack Overflow or respective owner