त्रुटि प्रबंधन सी भाषा द्वारा समर्थित नहीं है। कुछ अन्य तरीके हैं जिनसे C भाषा में एरर हैंडलिंग की जा सकती है। हेडर फ़ाइल "error.h" का उपयोग रिटर्न स्टेटमेंट फ़ंक्शन का उपयोग करके त्रुटियों को प्रिंट करने के लिए किया जाता है।
यह किसी भी त्रुटि के मामले में -1 या NULL देता है और त्रुटि कोड के साथ त्रुटि चर सेट किया जाता है। जब भी C भाषा में किसी फंक्शन को कॉल किया जाता है तो इरनो वेरिएबल उससे जुड़ा होता है। errno एक वैश्विक चर है और इसका उपयोग निष्पादन में त्रुटि के प्रकार को खोजने के लिए किया जाता है।
निम्न तालिका कुछ त्रुटियों को प्रदर्शित करती है -
Sr.No | त्रुटियों और त्रुटि मान |
---|---|
1 | I/O त्रुटि 5 |
2 | ऐसी कोई फ़ाइल या निर्देशिका नहीं 2 |
3 | तर्क सूची बहुत लंबी है 7 |
4 | स्मृति समाप्त 12 |
5 | अनुमति अस्वीकृत 13 |
C भाषा में त्रुटियों से निपटने के कुछ तरीके हैं -
-
आतंक () - इस फ़ंक्शन का उपयोग त्रुटि को प्रिंट करने के लिए किया जाता है और यह स्ट्रिंग को वर्तमान त्रुटि मान के पाठ्य प्रतिनिधित्व के साथ लौटाता है।
-
आतंक () - यह फ़ंक्शन "string.h" हेडर फ़ाइल में घोषित किया गया है और यह पॉइंटर को वर्तमान त्रुटि मान की स्ट्रिंग पर लौटाता है।
-
निकास स्थिति - दो स्थिरांक EXIT_SUCCESS और EXIT_FAILURE हैं जिनका उपयोग फ़ंक्शन से बाहर निकलने () में कॉलिंग फ़ंक्शन को त्रुटि के बारे में सूचित करने के लिए किया जा सकता है।
-
शून्य से विभाजित - यह एक ऐसी स्थिति है जिसमें C भाषा में इस त्रुटि को संभालने के लिए कुछ नहीं किया जा सकता है। इस त्रुटि से बचें और आप प्रोग्राम में 'if' कंडीशन का उपयोग करके भाजक मान की जांच कर सकते हैं।
यहाँ C भाषा में त्रुटि प्रबंधन का एक उदाहरण दिया गया है,
उदाहरण
#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