Saturday 24 May 2014

तऱ्हेवाईक चुका...! (Types of Errors in C Language)



अनेक विद्यार्थ्यांची C हीच पहीली प्रोग्रॅमिंग लॅंग्वेज असते. त्यामुळे प्रोग्रॅम लिहीण्यापेक्षा तो कंपाइल व रन करून पुढील प्रोग्रॅमला जाण्याची अतोनात घाई कायम दिसते. नंतर ती घाई कमी होत जाते हा भाग वेगळा…! पण सुरवातीला तर कंपाइल केलेल्या कोड मध्ये zero errors आहेत ना या कडेच सर्व लक्ष केंद्रीत असते. त्यावेळी काही warning असल्या तर अर्थातच त्या दुर्लक्षीत केल्या जातात.

हाच धागा पकडून मी C programming मध्ये कोणत्या स्वरूपाच्या errors असतात हे लिहीणार आहे. आवडले तर वाचा नाहीतर warning सारखे सोडून द्या…!


C programming language मध्ये Errors ची वर्गवारी 3 प्रकारात करता येइल.
  1. Compiler Message 
    1. Compiler Warnings
    2. Compile Time Errors
  2. Linker Errors
  3. Run time errors
    1. Fatal Errors
    2. Logical Errors
Compiler Message
कंपायलर च्या सहाय्याने आपण लिहीलेला सोर्स कोड मशीन कोड मध्ये convert करण्याचा प्रयत्न करतांना जर काही अडचणी आल्या तर युझर ला तो (कंपायलर) message च्या स्वरूपात देण्याचा प्रयत्न करतो
Compiler Warning
Warning अर्थ असा असतो की तुम्ही कोड मध्ये काही तरी चुकला आहात. नियम बाह्य पद्धतीने कोडचा काही भाग लिहीला आहे. पण त्या इतक्याही गंभीर नाहीत की कोड कंपाइल होणार नाही. त्या फक्त सुचना असतात. तुम्ही दुर्लक्ष करून पुढे गेला तर प्रोग्रॅम कंपाइल होतो. पण पुढे अशा काही अडचणी आल्या तर या शोधायला फार वेळ लागतो. म्हणून compiler warning कडे दुर्लक्ष करू नये. समजा तुम्ही main function चा रिटर्न टाईप integer लिहीला आहे व return 0 स्टेटमेंट लिहायचे विसरून गेला तर तुम्हाला warning मिळेल
Compiler Errors
तुमच्या सोर्स कोड मध्ये काही चुका अशा केल्या आहेत ज्या मुळे कोड कंपाइल करायला म्हणजेच मशीन कोड मध्ये convert करायला अडचणी येत आहेत अशा प्रकारच्या सुचनांना compiler errors म्हणतात. या मध्ये तुम्ही कोड दुरूस्त केल्या शिवाय पुढे जाउ शकत नाही. शक्यतो या लॅंग्वेजच्या सिंटॅक्स संबंधी असतात. उदा. semi colon किंवा फंक्शन चा closing brace अथवा अर्धवट double quote pair अशा मुळे त्या येतात. व्हेअरेबल डिक्लेअर न करता जरी वापरण्याचा प्रयत्न केला तर तुम्हाला कंपाइल टाइम एरर मिळेल
Errors आणी warnings या शक्यतो लाइन नंबर्स सहीत देण्याचे काम कंपायलर करतो. प्रत्येक कंपायलरची पद्धत थोडीफार वेगवेगळी असू शकते. शिवाय error अथवा warning शोधतांना message मध्ये असणारा line number व त्या अलीकडील line सुद्धा तपासून पहावी


Linker Errors
प्रोग्रॅम कंपाइल केल्या नंतर execution च्या पुर्वी link करण्याचा exclusive option कंपायलर मध्ये असू शकतो. अथवा execution करतांना सुद्धा linker error मिळु शकते. तुम्ही कॉल केलेल्या फंक्शन ची definition मिळाली नाही अथवा लायब्ररी मधील फाइल अथवा लायब्ररी मिळाली नाही तर तुमच्या तयार झालेल्या object file ला इतर object file शी linking न झाल्यामुळे व executable तयार होत नसल्यामुळे तुम्हाला linker error मिळेल. तुम्ही include केलेल्या library चा path चुकला असेल तरी सुद्धा तुम्हाला linker error मिळू शकते

Run Time Errors
प्रोग्रॅम कंपाइल व लिंक झाल्या नंतर रन करतांना सुद्धा अडचणी येउ शकतात. या वेळी येणाऱ्या अडचणींना व मिळणाऱ्या messages ना run time errors म्हणता येइल. गंमत म्हणजे या प्रोग्रॅम रन होतांना अथवा पुर्णपणे रन झाल्यानंतर सुद्धा येउ शकतात.      
Fatal Error
तुमची executable file crash करण्याची अथवा होण्याची शक्यता असणाऱ्या प्रोग्रॅम मधील काही चुकांमुळे या errors मिळतात. Array चा इंडेक्स, pointer, इत्यादी मुळे जर आल्या तर त्याला आपण segmentation fault म्हणतो. अथवा एखाद्या नंबर ला zero ने divide केल्यामुळे सुद्धा fatal error येते.

Logical Error
तुम्हाला एखादे स्टेटमेंट हवे तसे execute न होता भलत्याच पद्धतीने execute होते व वरील पैकी कोणत्याच प्रकारची error न मिळता output मिळते पण चुकीचे output मिळते. अथवा काहीवेळा बरोबर व काहीवेळा चुकीचे output मिळते अशा प्रकारच्या unpredictable errors ना logical errors म्हणतात. शोधायला सर्वात अवघड म्हणजे या errors कारण याचे कारण शोधुन काढायला लागते. शक्यतो कोणत्याही प्रकारचा message मिळत नाही
For similar interesting notes and audio visual e-contents visit our site C Marathi
For similar notes in Marathi on programming languages visit our blog C Marathi Blog
 

 
 

Do you like the C Marathi e-learning concept?