Привет,
прочитал вкратце
Why catch(Exception)/empty catch is bad
После прочтения создаётся идиотское впечатление, что если в блоке catch (Exception) вызвать throw, то потеряется тип исключения. Или в шарпе, в отличии от плюсов, данная техника не используется?
Чем же плох следующий код
class Foo : IDisposable
{
}
static List<Foo> CreateFooList()
{
List<Foo> resultList = new List<Foo>();
try
{
//тут заполняем список, используя различные методы,
//которые могут бросать различные исключения
//...
return resultList;
}
catch(Exception e)
{
//не помешает
LogException(e);
//уберём за собой
resultList.ForEach(item => item.Dispose());
//какая нам нафиг разница, что там случилось при заполнении?
//пусть клиент разбирается);
throw;
}
}
Спасибо.