try catchステートメントを囲むusingブロックがある場合、catchが例外を発生させると、そのusingステートメント内のオブジェクトはどうなりますか?次のコードを検討してください。
using (IDatabaseConnectivityObject databaseConnectivityObject = new DbProviderFactoryConnectionBasicResponse())
{
try
{
Foo();
}
catch (ArgumentNullException e)
{
throw;
}
}
Foo()が失敗し、例外が発生してプログラムが効果的に中断したと仮定した場合、databaseConnectivityObjectは破棄されますか?これが重要な理由は、オブジェクトにデータベース接続が関連付けられているためです。