Sebagai seorang programmer yang baik, seseorang harus menulis kode yang kuat yang akan menangani setiap hasil dari programnya. Namun, hampir semua fungsi dari pustaka C akan mengembalikan 0 atau -1 atau NULL ketika ada kesalahan.
Terkadang jelas bahwa pengecekan kesalahan diperlukan, misalnya ketika Anda mencoba membuka file. Tetapi saya sering mengabaikan kesalahan memeriksa fungsi seperti printfatau bahkan mallockarena saya merasa tidak perlu.
if(fprintf(stderr, "%s", errMsg) < 0){
perror("An error occurred while displaying the previous error.");
exit(1);
}
Apakah praktik yang baik untuk mengabaikan kesalahan tertentu, atau apakah ada cara yang lebih baik untuk menangani semua kesalahan?
trypernyataan, sehingga Anda tidak perlu memeriksa setiap panggilan atau operasi. (Perhatikan juga bahwa beberapa bahasa lebih baik daripada yang lain dalam mendeteksi kesalahan sederhana seperti null dereference atau array index di luar batas.)
errno! Jika Anda tidak terbiasa, sementara itu benar bahwa "hampir semua fungsi dari pustaka C akan mengembalikan 0 atau −1 atau NULLketika ada kesalahan," mereka juga mengatur errnovariabel global , yang dapat Anda akses dengan menggunakan #include <errno.h>dan kemudian hanya membaca nilai dari errno. Jadi, misalnya, jika open(2) kembali -1, Anda mungkin ingin memeriksa apakah errno == EACCES, yang akan menunjukkan kesalahan izin, atau ENOENT, yang akan menunjukkan bahwa file yang diminta tidak ada.
try/ catch, meskipun Anda bisa mensimulasikannya dengan lompatan.