![](/img/trans.png)
[英]Is there any way in which I can clean up my code by assigning a linq query to a single variable of type string?
[英]Which is the better way to “handle” an exception I want to let bubble up but execute clean up code
我正在一個新項目上,有一段代碼我不想實際處理異常,但要確保關閉所有數據庫連接。 我想知道哪種方法是解決此問題的最佳方法。 我看到2種方法,但不確定哪一種會更清晰:
SqlConnection con = new SqlConnection(connectionstring);
try
{
con.open()
//DoStuff
}
catch(Exception)
{
throw;
}
finally
{
con.close();
con.dispose();
}
要么
try
{
con.open()
//DoStuff
}
finally
{
con.close();
con.dispose();
}
無論哪種方式,我都將異常傳遞給要處理的調用代碼,但仍清理連接。
您可以使用using
語句來封閉您的連接。 就像您的第二個代碼示例一樣,它將轉換為try-finally
塊。
由於您沒有執行任何例外操作(例如記錄) ,因此可以省略catch塊。
您可以使用using
,如:
using (SqlConnection con = new SqlConnection(connectionstring))
{
}
這樣即使在出現異常的情況下,也可以確保將您的連接放置在using
塊的末尾。 您只能對那些實現IDisposable
接口的對象使用using
語句。
如果您要處理未實現IDisposable
對象,那么您的第二個代碼段(帶有try-finally)就足夠了,因為您希望異常冒泡。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.