sing ステートメントは、作成中のオブジェクトを破棄することを知っています。私がこのようなことをしたい場合のように:
Using(SqlConnection conn = new SqlConnection(connString))
{
//some code
//How to show the users if conn is not opened up or generated some kind of error?
}
Connが開かれていないか、何らかのエラーが発生した場合にユーザーに表示するにはどうすればよいですか?
using
ブロック内に記述されたコードについて特別なことは何もありません。例外を処理するには、_try.catch
_を使用するだけです。
_using(SqlConnection conn = new SqlConnection(connString))
{
try
{
conn.Open();
// do more stuff here......
}
catch(SqlException sqlEx)
{
// log error and possibly show to user in a MessageBox or something else
}
}
_
using(...) { ... }
ブロック自体は、「カプセル化」するリソース/オブジェクトが不要になったときに適切に破棄されるように設計されていますのみ。 using
ステートメント自体でエラーを処理するためにできることは何もありません。
したがって、オブジェクトの作成だけが失敗する可能性があると予想される場合は、using
ブロック全体を_try ... catch
_ブロック内に配置するか、_try ... catch ... finally
_ブロックにフォールバックして確認する必要があります。自分で適切に処分する(アダムが彼の答えで示唆したように)。