TL; DR - Tidak , Anda tidak boleh mengabaikan pengecualian dengan tenang.
Mari kita lihat asumsi.
Saya telah belajar untuk mempercayai bahwa banyak keputusan dalam. Tetapi yang ini luput dari saya.
MS memiliki beberapa staf yang sangat cerdas, tidak diragukan lagi. Mereka juga memiliki sejumlah manajer dan eksekutif yang ... tidak tahu apa-apa, dan yang secara konsisten membuat keputusan buruk. Seperti halnya kita ingin mempercayai dongeng ilmuwan cerdas yang secara teknis mendorong pengembangan produk, kenyataannya jauh lebih suram.
Maksud saya adalah, jika naluri Anda memberi tahu Anda ada sesuatu yang salah maka ada peluang bagus (dan preseden masa lalu) bahwa itu salah.
- Bahwa ini adalah masalah teknis
Cara menangani pengecualian dalam hal ini adalah keputusan faktor manusia, bukan keputusan teknis. Secara longgar, pengecualian adalah kesalahan. Presentasi kesalahan, bahkan jika diformat dengan buruk, memberikan informasi penting kepada pengguna akhir. Yaitu, ada yang salah.
Pertimbangkan percakapan hipotetis antara dan pengguna akhir dan pengembang ini.
Pengguna: Aplikasi rusak.
Dev: Apa yang rusak?
Pengguna: Saya tidak tahu, saya mengklik tombol dan tidak ada yang terjadi.
Dev: Apa yang Anda maksud dengan tidak ada yang terjadi?
Pengguna: Lihat, saya klik, saya menunggu, dan saya menunggu, dan saya menunggu, dan tidak ada ... itu jelas rusak.
Pengembang kami yang malang, untungnya hipotetis sekarang harus mencari tahu apa yang salah dalam rantai peristiwa. Dimana itu?
Pemberitahuan pengendali acara -> Rutin untuk menangani acara -> Metode yang dipicu oleh penangan -> permulaan panggilan asinkron -> 7 lapisan jaringan OSI -> transmisi fisik -> buat cadangan 7 lapisan jaringan OSI -> layanan penerima -> metode yang dipanggil oleh layanan -> ... -> balasan balasan yang dikirim oleh layanan -> .... -> tanda terima asynch -> pemrosesan balasan asynch -> ...
Dan harap dicatat bahwa saya telah membahas beberapa kemungkinan jalur kesalahan di sana.
Setelah membahas beberapa asumsi yang mendasarinya, saya pikir menjadi lebih jelas mengapa dengan diam-diam menekan pengecualian adalah ide yang buruk. Pengecualian dan pesan kesalahan yang terkait adalah indikator utama bagi pengguna bahwa ada kesalahan. Bahkan jika pesan itu tidak berarti bagi pengguna akhir, informasi yang disematkan dapat bermanfaat bagi Pengembang dalam memahami apa yang salah. Jika mereka beruntung, pesan itu bahkan akan mengarah ke solusi.
Saya pikir bagian dari masalah di sini adalah bahwa pengecualian yang ditangani secara tidak benar akan merusak aplikasi Anda. Dengan menekan pengecualian, aplikasi tidak akan macet. Ada beberapa validitas untuk ini karena titik async adalah untuk memungkinkan aplikasi untuk tetap berfungsi saat data sedang diambil. Ini bukan ekstensi logis untuk mengatakan bahwa jika Anda bisa tetap beroperasi sambil menunggu hasil maka kegagalan dalam pengambilan seharusnya tidak membuat aplikasi crash juga - panggilan async secara implisit dinyatakan sebagai tidak cukup penting untuk mengakhiri aplikasi.
Jadi ini solusi, tapi itu menyelesaikan masalah yang salah. Tidak perlu banyak upaya untuk menyediakan pembungkus untuk penanganan pengecualian agar aplikasi tetap berjalan. Pengecualian ditangkap, pesan kesalahan dilemparkan ke layar atau dicatat, dan aplikasi diizinkan untuk terus berjalan. Menekan pengecualian itu menyiratkan bahwa mengabaikan kesalahan akan menjadi A-OK dan bahwa pengujian Anda akan memastikan pengecualian tidak pernah lolos ke lapangan.
Jadi penilaian akhir saya adalah bahwa ini adalah upaya setengah matang untuk menyelesaikan masalah yang dibuat dengan mendorong orang menjadi model asinkron ketika mereka tidak siap untuk mengubah pemikiran mereka ke pendekatan itu.