【发布时间】:2016-05-04 22:52:30
【问题描述】:
考虑以下代码:
public static Stream OpenWavStream(string path)
{
var stream = new FileStream(path, FileMode.Open);
try
{
stream.Seek(44, SeekOrigin.Current);
}
catch (Exception)
{
stream.Dispose();
throw;
}
return stream;
}
我正在打开一个 wav 流,其数据始终从偏移量 44 开始。如果查找该偏移量失败,则释放该流,否则将其返回。考虑到catch (Exception) is considered bad practice,在这种情况下是否合适?
应该研究具体的异常(即使在 Stream.Seek 调用中发生任何类型的异常时应该处理流)还是将其移至 finally 块?
【问题讨论】:
-
在此再次阅读 msdn 文档 .. 它解释了如何不捕获一般异常