Kasus spesifik saya di sini adalah bahwa pengguna dapat mengirimkan string ke dalam aplikasi, aplikasi mem-parsingnya dan menetapkannya ke objek terstruktur. Terkadang pengguna dapat mengetik sesuatu yang tidak valid. Misalnya, masukan mereka mungkin menggambarkan seseorang tetapi mereka mungkin mengatakan usia mereka adalah "apel". Perilaku yang benar dalam kasus itu adalah gulung balik transaksi dan untuk memberi tahu pengguna kesalahan terjadi dan mereka harus mencoba lagi. Mungkin ada persyaratan untuk melaporkan setiap kesalahan yang dapat kita temukan di input, bukan hanya yang pertama.
Dalam hal ini, saya berpendapat kita harus melempar pengecualian. Dia tidak setuju, mengatakan, "Pengecualian harus luar biasa: Diharapkan pengguna dapat memasukkan data yang tidak valid, jadi ini bukan kasus yang luar biasa" Saya tidak benar-benar tahu bagaimana memperdebatkan hal itu, karena menurut definisi kata, dia sepertinya benar.
Namun, menurut pemahaman saya inilah mengapa Pengecualian diciptakan sejak awal. Dulu Anda harus memeriksa hasilnya untuk melihat apakah ada kesalahan. Jika Anda gagal memeriksa, hal-hal buruk dapat terjadi tanpa Anda sadari.
Tanpa pengecualian setiap tingkat tumpukan perlu memeriksa hasil dari metode yang mereka panggil dan jika seorang programmer lupa untuk memeriksa di salah satu level ini, kode dapat secara tidak sengaja melanjutkan dan menyimpan data yang tidak valid (misalnya). Tampaknya lebih banyak kesalahan cenderung seperti itu.
Bagaimanapun, jangan ragu untuk memperbaiki apa pun yang saya katakan di sini. Pertanyaan utama saya adalah jika seseorang mengatakan Pengecualian harus luar biasa, bagaimana saya tahu jika kasus saya luar biasa?