Memunculkan Pesan Peringatan Error Bahasa C
Sinyal atau tanda pada komputer adalah cara berkomunikasi antara proses dan sistem operasi. Ketika sebuah program berjalan dengan beberapa tanda error maka sistem operasi akan memberi sinyal pada prosesnya dan akan menghentikan proses eksekusi program selanjutnya. Beberapa proses mungkin memiliki signal handler atau penanganan sinyal yang melakukan beberapa tugas penting sebelum proses berhenti dari CPU.
Sebelum mempelajari materi tentang Memunculkan Pesan Peringantan Error Bahasa C, terlebih dahulu pelajari materi tentang: Makro dan Preprocessor Bahasa C Beserta Fungsinya [klik], Cara Kompilasi Program Bahasa C dan Fungsinya [klik], dan Keunggulan Bahasa C Beserta Fungsinya [klik].
Sinyal dan interupsi pada dasarnya adalah sama tetapi terdapat sedikit perbedaan dimana interupsi di-generate oleh prosesor dan ditangani oleh kernel tetapi sinyal atau signal di-generate oleh kernel dan ditangani oleh proses. Sinyal error umumnya dikarenakan terminasi dari program dan sebuah core dump file yang diciptakan dan dinamai core, yang menyimpan state dari proses ketika terjadi terminasi. File tersebut dapat ditemukan menggunakan debugger yang fungsinya untuk mengetahui penyebab dari terminasi program.
Baca Juga:
Error signal
satu, SIGFPE-
Sinyal error ini menandai beberapa kesalahan aritmatik seperti pembagian oleh angka 0, floating point error, dan lain sebagainya. Jika sebuah program menyimpan data integer pada lokasi dinama digunakan untuk operasi dengan tipe data float, maka dapat menyebabkan invalid operasi kecuali jika prosesor tidak mengenali data sebagai nilai float. Tetapi tanda ini tidak menentukan tipe error floating point.
dua, SIGILL-
Sinyal ini menandai instruksi ilegal. Ketika instruksi garbage atau instruksi yang dibuat tetapi tidak diijinkan pada eksekusi program atau tidak memiliki aturan untuk mengeksekusi program tersebut, dan kemudian perintah tersebut tetap di-generate maka sinyal error ini akan dimunculkan. Bahasa C tidak menghasilkan instruksi ilegal sehingga tidak mungkin akan menemukan sinyal error semacam ini, sehingga hasil dari kemungkinan yang program dieksekusi maka dapat menyebabkan file menjadi corrupted. Sinyal ini juga di-generate ketika terjadi stack overflow.
tiga, SIGSEGV-
Sinyal error ini akan muncul ketika pada tahap proses program mencoba mengakses lokasi yang tidak diijinkan untuk diakses, seperti melakukan referensi ulang pointer secara sembarangan menuju ke "segmentation fault". Sinyal ini hanya di-generate ketika sebuah program menuju terlalu jauh dari ruang memorinya sehingga akan dideteksi oleh mekanisme memori proteksi. Atau lebih akrab dikenal dengan istilah pelanggaran segmentasi atau segmentation violation.
empat, SIGBUS-
Sinyal ini dikenal dengan singkatan "Bus error". Sinyal ini dihasilkan ketika mengalami akses memori invalid. Sekilas mirip seperti SIGSEGV tetapi pada SIGSEGV referensi lokasi memori adalah valid, tetapi pada SIGBUS referensi memori tidak ada atau invalid, dengan kata lain lokasi memori berada diluar jangkauan ruang.
lima, SIGABRT-
Jika error terdeteksi oleh program maka sinyal ini akan di-generate dengan memanggil perintah abort(). Sinyal ini juga digunakan oleh library standar untuk melaporkan internal error. Fungsi assert() pada C++ juga menggunakan abort() untuk generate tanda tersebut.
enam, SIGSYS-
Sinyal ini dikirim untuk diproses ketika argument invalid dilewatkan menuju ke pemanggilan sistem.
tujuh, SIGTRAP-
Sinyal ini dikirim untuk diproses ketika muncul tanda exception. Sinyal ini diperintahkan oleh debugger untuk memberikan informasi. Contohnya, jika sebuah variabel b
Referensi Tambahan:
- Bagaimana Peran dan Penggunaan Scope Variabel pada Bahasa C [klik]
- 2 Aturan Utama Scope pada Bahasa C [klik]
- 3 Aturan Utama Penggunaan Linker pada Bahasa C [klik]
- 3 Cara Singkat Memahami Deklarasi Kompleks dalam Bahasa C [klik]
- 2 Contoh Singkat Deklarasi Variabel Global dalam Bahasa C [klik]
- 3 Definisi Utama Internal dan Eksternal Linkage Bahasa C [klik]
- 4 Cara Utama Deklarasi Variabel Sebagai Konstanta Bahasa C dan C++ [klik]
Artikel ini didedikasikan kepada: Salma Ferizha Bulan Effendi, Siti Aisyah, Sri Handayani, Theofilus Rangga Kristian, dan Widya Arumningtyas Candra Aribowo.
Apa yang dimaksud dengan error program?
BalasHapusError atau kesalahan merupakan masalah yang terjadi pada suatu program, yang membuat perilaku dari suatu program menjadi tidak normal dimana kesalahan tersebut tidak hanya terjadi ketika program dijalankan, tetapi juga ketika program tersebut sedang dalam proses pembuatan. Error atau kesalahan pemrograman tersebut juga dikenal dengan istilah bug (serangga = mengganggu), dan proses penghapusan debug disebut dengan debugging.
HapusBagaimana cara penanganan error atau error handling pada bahasa C?
BalasHapusProgrammer pada bahasa C dapat memeriksa nilai yang dikembalikan oleh kompilator dan dapat mengambil tindakan yang sesuai tergantung dengan nilai (atau pesan error) yang dikembalikan tersebut.
HapusTips: biasakan untuk mengembalikan nilai program atau ke 0 untuk menunjukkan bahwa sudah tidak terjadi kesalahan apapun pada program.
Apa yang dimaksud dengan stderr?
BalasHapusStderr adalah standar pesan error yang digunakan untuk mencetak nilai output pada layar atau terminal window.s Stderr juga merupakan salah satu output dari perintah stdout yang melakukan perekaman secara otomatis atau default.
Hapus