事实上,我尝试对我的代码进行防错,最后让它看起来很乱。
我设置了一个功能来读取某种类型的文件。如果有问题,我希望函数返回 false,如果一切正常,我希望函数返回 true。我无法弄清楚如何构建所有内容。
我有一个尝试打开文件流的初始 try-catch 块。不过在那之后,我在读取过程中进行了某些其他检查,例如文件大小和某些偏移量的值。我设置它的方式是使用 if else 语句。如:
if(condition){
}
else{
MessageBox.Show("There was an error");
br.Dispose();
fs.Dispose();
return false;
}
...br 是二进制阅读器,fs 是文件流。有很多这样的块,多次编写相同的东西似乎是一种不好的做法。首先想到的是将整个事物包装在 try-catch 语句中并抛出异常,而不是使用 if else 块。我记得在阅读有关 try-catch 语句时,最好有它们,但不要用它们包装所有内容。老实说,我仍然不完全理解为什么将所有内容都包含在 try catch 语句中是不好的做法,因为它们仅在出现错误时才有效,在这种情况下程序无论如何都会向南...
另外,我是否必须关闭二进制读取器和文件流,或者关闭一个关闭另一个?有什么方法可以使用它们而不必处理它们?