Setelah melalui sebagian besar jawaban di sini, saya ingin menambahkan beberapa pemikiran.
Mengandalkan Komentar Dokumentasi XML dan mengharapkan orang lain mengandalkan adalah pilihan yang buruk. Kebanyakan kode C # yang saya temui tidak mendokumentasikan metode secara lengkap dan konsisten dengan Komentar Dokumentasi XML. Dan kemudian ada masalah yang lebih besar yang tanpa pengecualian yang dicentang di C #, bagaimana Anda bisa mendokumentasikan semua pengecualian yang dilemparkan metode Anda untuk tujuan pengguna API Anda mengetahui cara menangani semuanya secara individual? Ingat, Anda hanya tahu tentang yang Anda lempar sendiri dengan kata kunci lempar dalam penerapan Anda. API yang Anda gunakan di dalam implementasi metode Anda mungkin juga memunculkan pengecualian yang tidak Anda ketahui karena mereka mungkin tidak didokumentasikan dan Anda tidak menanganinya dalam implementasi Anda, jadi mereka akan meledak di hadapan pemanggil Anda. metode. Dengan kata lain,
Andreas menghubungkan wawancara dengan Anders Hejlsberg dalam jawaban di sini tentang mengapa tim desain C # memutuskan untuk tidak mengecek pengecualian. Tanggapan akhir untuk pertanyaan asli tersembunyi dalam wawancara itu:
Pemrogram melindungi kode mereka dengan menulis try akhirnya ada di mana-mana, sehingga mereka akan mundur dengan benar jika terjadi pengecualian, tetapi mereka sebenarnya tidak tertarik untuk menangani pengecualian.
Dengan kata lain, tidak ada yang tertarik dengan jenis pengecualian apa yang dapat diharapkan untuk API tertentu karena Anda akan selalu menangkap semuanya di mana-mana. Dan jika Anda ingin benar-benar peduli tentang pengecualian tertentu, cara menanganinya terserah Anda dan bukan seseorang yang menentukan tanda tangan metode dengan sesuatu seperti kata kunci lemparan Java, yang memaksa penanganan pengecualian tertentu pada pengguna API.
-
Secara pribadi, saya terkoyak di sini. Saya setuju dengan Anders bahwa mengecek pengecualian tidak menyelesaikan masalah tanpa menambahkan masalah baru yang berbeda. Sama seperti dengan komentar dokumentasi XML, saya jarang melihat kode C # dengan semuanya dibungkus dengan blok akhirnya mencoba. Rasanya bagi saya meskipun ini memang satu-satunya pilihan Anda dan sesuatu yang tampak seperti praktik yang baik.