Nehmen wir an, Sie hatten einige Ressourcen zu bereinigen wie: Dies ist C#.
try{/*stuff*/}
catch(Exception e) {/*rollback logs etc.*/}
finally{
if( context.Transaction != null )
context.Transaction.Dispose();
context.Connection.Close();
context.Connection.Dispose();
}
Wäre es sinnvoller, dies stattdessen zu tun?
try{/*stuff*/}
catch(Exception e) {/*rollback logs etc.*/}
finally{
try{
if( context.Transaction != null )
context.Transaction.Dispose();
}catch(Exception e){/*logs*/}
finally{
context.Connection.Close();
context.Connection.Dispose();
}
}
Wenn die transaction.dispose fehlschlägt, hat zumindest die Verbindung die Möglichkeit, sich zu schließen.