可以說你有一些資源清理如下:這是C#。finally塊中的多項式操作
try{/*stuff*/}
catch(Exception e) {/*rollback logs etc.*/}
finally{
if(context.Transaction != null)
context.Transaction.Dispose();
context.Connection.Close();
context.Connection.Dispose();
}
這樣做會更健壯嗎?
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();
}
}
這樣,如果transaction.dispose管理失敗,連接將被給予關閉的機會。
通過這種邏輯,你可以將嵌套try-catch結構的概念應用到無限級別。它仍然聽起來像健壯? – Cerebrus 2009-02-21 15:40:46
@Cerberus:只有你有無限的資源,纔會遇到這種情況? – 2009-02-21 16:30:58