Saya telah melihat orang mengatakan bahwa itu adalah bentuk yang buruk untuk menggunakan tangkapan tanpa argumen, terutama jika tangkapan itu tidak melakukan apa-apa:
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
catch // No args, so it will catch any exception
{}
reader.Close();
Namun, ini dianggap bentuk yang baik:
StreamReader reader=new StreamReader("myfile.txt");
try
{
int i = 5 / 0;
}
finally // Will execute despite any exception
{
reader.Close();
}
Sejauh yang saya tahu, satu-satunya perbedaan antara menempatkan kode pembersihan di akhirnya blok dan menempatkan kode pembersihan setelah coba .. blok pengiriman adalah jika Anda memiliki pernyataan kembali di blok percobaan Anda (dalam hal itu, kode pembersihan pada akhirnya akan jalankan, tetapi kode setelah coba..catch tidak akan).
Jika tidak, apa yang istimewa tentang akhirnya?