একজন ভাল প্রোগ্রামার হিসাবে একজনকে এমন দৃ codes় কোড লিখতে হবে যা তার প্রোগ্রামের প্রতিটি ফলাফল পরিচালনা করবে। যাইহোক, সি লাইব্রেরি থেকে প্রায় সমস্ত ফাংশন 0 বা -1 বা NUL ফিরে আসবে যখন কোনও ত্রুটি আছে।
এটি কখনও কখনও স্পষ্ট হয় যে ত্রুটি যাচাই করা দরকার, উদাহরণস্বরূপ আপনি যখন কোনও ফাইল খোলার চেষ্টা করেন। তবে আমি প্রায়শই যেমন ক্রিয়াকলাপে ত্রুটি পরীক্ষা করা printf
বা এমনকি malloc
প্রয়োজন বোধ করি না কেন তা উপেক্ষা করি।
if(fprintf(stderr, "%s", errMsg) < 0){
perror("An error occurred while displaying the previous error.");
exit(1);
}
কেবলমাত্র কিছু ত্রুটি উপেক্ষা করা কি ভাল অনুশীলন, বা সমস্ত ত্রুটিগুলি পরিচালনা করার আরও ভাল উপায় আছে?
try
বিবৃতি সহ আমন্ত্রিত ফাংশন এবং পদ্ধতিগুলি সহ কভার করতে পারেন , সুতরাং আপনাকে প্রতিটি কল বা অপারেশন চেক করতে হবে না। (এছাড়াও নোট করুন যে কিছু ভাষাগুলি অন্যের তুলনায় নাল ডেরেফারেন্স বা অ্যারে সূচকের সীমা ছাড়াই সাধারণ ত্রুটিগুলি সনাক্তকরণে আরও ভাল))
errno
! যদি আপনি পরিচিত না হন তবে এটি সত্য যে "সি লাইব্রেরির প্রায় সমস্ত ফাংশন 0 বা −1 ফিরে আসবে বা NULL
যখন কোনও ত্রুটি ঘটবে " তারা বৈশ্বিক errno
চলকও সেট করে যা আপনি ব্যবহার করে #include <errno.h>
এবং কেবল সহজভাবে পড়ার মাধ্যমে অ্যাক্সেস করতে পারবেন এর মান errno
। সুতরাং, উদাহরণস্বরূপ, যদি open
(2) ফিরে আসে -1
, আপনি যাচাই করতে চাইতে পারেন errno == EACCES
, যা কোনও অনুমতি ত্রুটি নির্দেশ করে, বা ENOENT
যা নির্দেশ করে যে ফাইলটি বিদ্যমান নেই।
try
/ catch
, যদিও আপনি এটিকে জাম্প দিয়ে সিমুলেট করতে পারেন।