这是我的代码:
public void ReadSomeFile(string filePath)
{
if (!File.Exists(filePath))
throw new FileNotFoundException();
var stream = new FileStream(filePath, ....)
.....
}
我是否应该自己抛出异常(请参阅File.Exists
检查)?如果文件不存在,FileStream
将已经抛出FileNotFoundException
。这里有什么好的编程习惯?代码分析表明,我们应该验证参数。但是,如果我将该参数直接传递给另一个方法(我的代码或其他代码),并且该方法本身会引发异常,那么在我的代码中验证参数的好处是什么?
FileNotFoundException
-实际上,这只是在引发种族状况问题。您可以处理异常,让其传播或将其包装在您自己的异常中。这分别对应于“我知道该怎么办”,“我不知道该怎么办”和“我想在堆栈上更高级地处理”。