কম্পিউটার

সি-তে ত্রুটি হ্যান্ডলিং


ত্রুটি পরিচালনা সি ভাষা দ্বারা সমর্থিত নয়৷ সি ল্যাঙ্গুয়েজে আরো কিছু উপায় আছে যার মাধ্যমে এরর হ্যান্ডলিং করা যায়। হেডার ফাইল “error.h” রিটার্ন স্টেটমেন্ট ফাংশন ব্যবহার করে ত্রুটিগুলি প্রিন্ট করতে ব্যবহৃত হয়।

এটি কোনো ত্রুটির ক্ষেত্রে -1 বা NULL প্রদান করে এবং ত্রুটি কোডের সাথে errno ভেরিয়েবল সেট করা হয়। যখনই সি ল্যাঙ্গুয়েজে কোনো ফাংশন কল করা হয়, তখনই এর সাথে errno ভেরিয়েবল যুক্ত হয়। errno একটি গ্লোবাল ভেরিয়েবল এবং এক্সিকিউশনে ত্রুটির ধরন খুঁজে বের করতে ব্যবহৃত হয়।

নিম্নলিখিত সারণী কিছু ত্রুটি প্রদর্শন করে −

Sr. No ত্রুটি এবং ত্রুটি মান
1 I/O ত্রুটি
5
2 এমন কোনো ফাইল বা ডিরেক্টরি নেই
2
3 আর্গুমেন্ট লিস্ট খুব লম্বা
7
4 স্মৃতির বাইরে
12
5 অনুমতি অস্বীকার করা হয়েছে
13

সি ল্যাঙ্গুয়েজ -

-এ ত্রুটিগুলি পরিচালনা করার কিছু পদ্ধতি রয়েছে
  • অপরাধ() − এই ফাংশনটি ত্রুটিটি প্রিন্ট করতে ব্যবহৃত হয় এবং এটি বর্তমান ত্রুটি মানের পাঠ্য উপস্থাপনা সহ স্ট্রিং প্রদান করে৷

  • স্ট্রার() − এই ফাংশনটিকে “string.h” হেডার ফাইলে ঘোষণা করা হয়েছে এবং এটি বর্তমান ভুল মানের স্ট্রিং-এ পয়েন্টার ফিরিয়ে দেয়।

  • প্রস্থান অবস্থা − দুটি ধ্রুবক আছে EXIT_SUCCESS এবং EXIT_FAILURE যা কলিং ফাংশনকে ত্রুটি সম্পর্কে জানাতে ফাংশন exit() এ ব্যবহার করা যেতে পারে।

  • শূন্য দ্বারা ভাগ - এটি এমন একটি পরিস্থিতি যেখানে C ভাষায় এই ত্রুটিটি পরিচালনা করার জন্য কিছুই করা যায় না। এই ত্রুটি এড়িয়ে চলুন এবং আপনি প্রোগ্রামে 'if' শর্ত ব্যবহার করে ভাজক মান পরীক্ষা করতে পারেন।

এখানে সি ল্যাঙ্গুয়েজ,

এরর হ্যান্ডলিং এর একটি উদাহরণ

উদাহরণ

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

main() {
   int x = 28;
   int y = 8;
   int z;

   if( y == 0) {
      fprintf(stderr, "Division by zero!\n");
      exit(EXIT_FAILURE);
   }
   z = x / y;
   fprintf(stderr, "Value of z : %d\n", z );
   exit(EXIT_SUCCESS);
}

আউটপুট

এখানে আউটপুট

Value of z : 3

  1. উইন্ডোজ এরর 43

  2. 0x0000c1f5 ত্রুটির সমাধান

  3. 0x0000c1f5 ত্রুটি সংশোধন

  4. MULTIPLE_IRP_COMPLETE_REQUESTS ত্রুটি ঠিক করুন