引数なしでキャッチを使用することは、特にそのキャッチが何もしない場合は、悪い形だと人々が言うのを見てきました。
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
catch // No args, so it will catch any exception
{}
reader.Close();
ただし、これは適切な形式と見なされます。
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
finally // Will execute despite any exception
{
reader.Close();
}
私が知る限りでは、クリーンアップコードをfinallyブロックに配置することと、try..catchブロックの後にクリーンアップコードを配置することの唯一の違いは、tryブロックにreturnステートメントがある場合です(その場合、finallyのクリーンアップコードは実行されますが、try..catchの後のコードは実行されません)。
そうでなければ、最後に何がそれほど特別なのですか?