Saya selalu menemukan diri saya bergulat dengan ini ... mencoba menemukan keseimbangan yang tepat antara mencoba / menangkap dan kode tidak menjadi berantakan tab, kurung, dan pengecualian yang dilemparkan kembali ke tumpukan panggilan seperti kentang panas. Misalnya, saya memiliki aplikasi yang saya kembangkan saat ini yang menggunakan SQLite. Saya memiliki antarmuka Database yang abstrak panggilan SQLite, dan Model yang menerima hal-hal untuk masuk / keluar dari Database ... Jadi jika / ketika pengecualian SQLite terjadi, itu harus dilempar ke Model (yang menyebutnya ), siapa yang harus menyampaikannya kepada siapa pun yang disebut AddRecord / DeleteRecord / apa pun ...
Saya penggemar pengecualian sebagai lawan mengembalikan kode kesalahan karena kode kesalahan dapat diabaikan, dilupakan, dll, sedangkan Pengecualian pada dasarnya harus ditangani (diberikan, saya bisa menangkap dan melanjutkan segera ...) Saya pasti ada cara yang lebih baik daripada apa yang saya lakukan saat ini.
Sunting: Saya seharusnya mengatakan ini sedikit berbeda. Saya mengerti untuk melemparkan ulang sebagai tipe yang berbeda dan semacamnya, saya mengatakannya dengan buruk dan itu adalah kesalahan saya sendiri. Pertanyaan saya adalah ... bagaimana cara terbaik menjaga kode tetap bersih saat melakukannya? Itu hanya mulai terasa sangat berantakan bagi saya setelah beberapa saat.