そのまま、コードのエラー防止を試みたところ、非常に乱雑に見えてしまいました。
特定の種類のファイルを読み取る機能を設定しています。問題が発生した場合は関数が 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 ステートメントでラップするのが悪い習慣である理由をまだ完全には理解していません。
また、バイナリ リーダーとファイル ストリームを閉じる必要がありますか? それらを処分せずに使用する方法はありますか?