Bagaimana saya harus menangani input pengguna yang tidak valid?

Saya telah memikirkan masalah ini untuk sementara waktu dan saya ingin tahu pendapat dari pengembang lain. Saya cenderung memiliki gaya pemrograman yang sangat defensif. Blok atau metode khas saya terlihat seperti ini: T foo(par1, par2, par3, ...) { // Check that all parameters are correct,...