İnsanlar, özellikle bu yakalama hiçbir şey yapmazsa, yakalamak için argüman kullanmanın kötü bir form olduğunu söylediğini gördüm:
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
catch // No args, so it will catch any exception
{}
reader.Close();
Ancak, bu iyi bir form olarak kabul edilir:
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
finally // Will execute despite any exception
{
reader.Close();
}
Anlayabildiğim kadarıyla, nihayet bloğuna temizleme kodu koymak ve try..catch bloklarından sonra temizleme kodunu koymak arasındaki tek fark, try bloğunuzda iade ifadeleri (bu durumda, nihayetinde temizleme kodu çalıştır, ama try..catch sonra kod olmaz).
Aksi halde, nihayet bu kadar özel?