Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Bahasa C

C - Penanganan Kesalahan

Dengan demikian, pemrograman C tidak memberikan dukungan langsung untuk penanganan kesalahan tetapi sebagai bahasa pemrograman sistem, ia memberi Anda akses di tingkat yang lebih rendah dalam bentuk nilai kembalian. Sebagian besar panggilan fungsi C atau bahkan Unix mengembalikan -1 atau NULL jika terjadi kesalahan dan menetapkan kode kesalahan errno . Ini diatur sebagai variabel global dan menunjukkan kesalahan yang terjadi selama panggilan fungsi apa pun. Anda dapat menemukan berbagai kode kesalahan yang didefinisikan dalam file header .

Jadi programmer C dapat memeriksa nilai yang dikembalikan dan dapat mengambil tindakan yang sesuai tergantung pada nilai yang dikembalikan. Ini adalah praktik yang baik, untuk mengatur errno ke 0 pada saat inisialisasi program. Nilai 0 menunjukkan bahwa tidak ada kesalahan dalam program.

errno, kesalahan(). dan strerror()

Bahasa pemrograman C menyediakan perror() dan strerror() fungsi yang dapat digunakan untuk menampilkan pesan teks yang terkait dengan errno .

Mari kita coba mensimulasikan kondisi kesalahan dan mencoba membuka file yang tidak ada. Di sini saya menggunakan kedua fungsi untuk menunjukkan penggunaan, tetapi Anda dapat menggunakan satu atau lebih cara untuk mencetak kesalahan Anda. Poin penting kedua yang perlu diperhatikan adalah Anda harus menggunakan stderr aliran file untuk menampilkan semua kesalahan.

#include <stdio.h>
#include <errno.h>
#include <string.h>

extern int errno ;

int main () {

   FILE * pf;
   int errnum;
   pf = fopen ("unexist.txt", "rb");
	
   if (pf == NULL) {
   
      errnum = errno;
      fprintf(stderr, "Value of errno: %d\n", errno);
      perror("Error printed by perror");
      fprintf(stderr, "Error opening file: %s\n", strerror( errnum ));
   } else {
   
      fclose (pf);
   }
   
   return 0;
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Value of errno: 2
Error printed by perror: No such file or directory
Error opening file: No such file or directory

Bagi dengan Nol Kesalahan

Ini adalah masalah umum bahwa pada saat membagi nomor apapun, programmer tidak memeriksa apakah pembagi adalah nol dan akhirnya menciptakan kesalahan runtime.

Kode di bawah ini memperbaikinya dengan memeriksa apakah pembaginya nol sebelum membagi −

Demo Langsung
#include <stdio.h>
#include <stdlib.h>

main() {

   int dividend = 20;
   int divisor = 0;
   int quotient;
 
   if( divisor == 0){
      fprintf(stderr, "Division by zero! Exiting...\n");
      exit(-1);
   }
   
   quotient = dividend / divisor;
   fprintf(stderr, "Value of quotient : %d\n", quotient );

   exit(0);
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Division by zero! Exiting...

Status Keluar Program

Ini adalah praktik umum untuk keluar dengan nilai EXIT_SUCCESS jika program keluar setelah operasi berhasil. Di sini, EXIT_SUCCESS adalah makro dan didefinisikan sebagai 0.

Jika Anda memiliki kondisi kesalahan dalam program Anda dan Anda keluar maka Anda harus keluar dengan status EXIT_FAILURE yang didefinisikan sebagai -1. Jadi mari kita tulis program di atas sebagai berikut

Demo Langsung
#include <stdio.h>
#include <stdlib.h>

main() {

   int dividend = 20;
   int divisor = 5;
   int quotient;
 
   if( divisor == 0) {
      fprintf(stderr, "Division by zero! Exiting...\n");
      exit(EXIT_FAILURE);
   }
	
   quotient = dividend / divisor;
   fprintf(stderr, "Value of quotient : %d\n", quotient );

   exit(EXIT_SUCCESS);
}

Ketika kode di atas dikompilasi dan dieksekusi, menghasilkan hasil sebagai berikut

Value of quotient : 4

Bahasa C

  1. C Penanganan Berkas
  2. Penanganan Pengecualian Java
  3. Memahami tingkat kesalahan kode ADC
  4. Penyimpanan dan Penanganan Belt
  5. Penanganan File di C#:Operasi I/O [Contoh]
  6. Penanganan Sinyal C++
  7. C# - Penanganan Pengecualian
  8. Python - Penanganan Pengecualian
  9. Dasar-dasar Keselamatan Penanganan Material
  10. Apa itu penanganan material?