Нет, вам нужно использовать finally
Stream stream;
try
{
stream = response.GetResponseStream();
//Error Occurs
}
catch
{
//Handle Error
}
finally
{
if(stream != null)
stream.Close();
}
Или, оберните ваше объявление / определение Stream
в оператор using
, который автоматически вызывает Close()
:
try
{
using(Stream stream = response.GetResponseStream())
{
//Error happens
}
//stream.Dispose(), which calls stream.Close(), is called by compiler here
}
catch
{
//Handle Error
}
Обратите внимание, что мои два примера не точно эквивалентны - в первом исключение обрабатывается до вызова steam.Close()
, во втором исключение обрабатывается после.