c exception handling tutorial with code examples
एक्सेप्शन हैंडलिंग एक ऐसा तरीका है जिससे एरर को हैंडल किया जा सकता है जो किसी प्रोग्राम के एक्जीक्यूशन के दौरान हो सकता है। यह ट्यूटोरियल कोड उदाहरणों के साथ C # में अपवाद हैंडलिंग की व्याख्या करता है:
यह साबित कर # c उत्तर
अपवाद हैंडलिंग का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि रनटाइम त्रुटि होने पर भी प्रोग्राम का प्रवाह जारी रहे। अपवाद वे वस्तुएं हैं जो किसी भी रनटाइम त्रुटि का सामना करते समय फेंक दी जाती हैं।
यदि अपवादों को नियंत्रित नहीं किया जाता है, तो C # एक अपवाद संदेश का उत्पादन करेगा और कार्यक्रम को समाप्त कर देगा, यह वह जगह है जहां अपवाद हैंडलिंग चित्र में आता है।
=> यहाँ शुरुआती के लिए सी # गाइड के माध्यम से पढ़ें
आप क्या सीखेंगे:
- अपवाद क्या हैं?
- अपवाद हैंडलिंग के लिए कीवर्ड
- अपवाद कक्षाएं C # में मौजूद हैं
- C # में अपवाद हैंडलिंग
- निष्कर्ष
- अनुशंसित पाठ
अपवाद क्या हैं?
अपवाद अभूतपूर्व त्रुटियां हैं जो रनटाइम के दौरान आपके प्रोग्राम के अंदर हो सकती हैं। अधिकांश समय प्रोग्रामर कुछ त्रुटियों को आसानी से पहचान सकते हैं जैसे सत्यापन या अशक्त जाँच या कुछ मूल्यों की पुष्टि करते समय।
लेकिन कुछ निश्चित समय होते हैं जब हम यह अनुमान नहीं लगा सकते हैं कि कोई त्रुटि कब या कब दिखाई देगी। उदाहरण के लिए, मान लीजिए कि मैं एक स्थान पर एक फ़ाइल की तलाश कर रहा हूँ। फ़ाइल मौजूद होने तक मेरा प्रोग्राम पूरी तरह से ठीक चलेगा और अगर किसी तरह फ़ाइल डिलीट हो गई तो मेरा प्रोग्राम एक एरर फेंक देगा।
अपवाद नियमित रूप से नहीं होते हैं लेकिन फिर भी हो सकते हैं और आप हमेशा उन्हें सावधानीपूर्वक संभालना चाहेंगे। इन्हें संभालने के लिए हम अपवाद हैंडलिंग का उपयोग करते हैं।
जब भी कोई त्रुटि होती है तो हम कहते हैं कि इसे फेंक दिया गया है, 'फेंका गया' एक वस्तु है प्रणाली। अपवाद सी # में कक्षा। प्रणाली। अपवाद वर्ग विभिन्न तरीकों और गुणों को प्रदान करता है जो उस त्रुटि के बारे में विवरण देते हैं जो आपके प्रोग्राम ने अभी सामना किया है।
जैसे स्टैक ट्रेस प्रॉपर्टी जो स्टैक प्रदान करती है जिसके लिए समस्या हुई या संदेश प्रॉपर्टी जो अपवाद का विवरण प्रदान करती है।
अपवाद हैंडलिंग के लिए कीवर्ड
अपवाद कार्यक्रम के एक निश्चित भाग को नियंत्रित करने के लिए एक प्रक्रिया की पेशकश करते हैं ताकि उस भाग में कोई अपवाद हो, तो भी कार्यक्रम नियंत्रण कार्यक्रम के दूसरे भाग में स्थानांतरित हो जाता है। C # अपवाद हैंडलिंग में मूल रूप से लगभग चार कीवर्ड बनाए गए हैं: फेंक, कोशिश, पकड़ और अंत में ।
फेंकना
जैसा कि हम पहले ही चर्चा कर चुके हैं कि यह एक वस्तु है प्रणाली। अपवाद सी # में कक्षा। जब भी यह एक सामना करता है तो यह प्रोग्राम को एक त्रुटि फेंकने की अनुमति देता है।
प्रयत्न
ब्लॉक कोड को कोड के ब्लॉक को जोड़ता है जो प्रोग्राम को अपवाद फेंकने का कारण हो सकता है। इसके बाद एक या अधिक कैच ब्लॉक होते हैं।
पकड़
जब ब्लॉक एक अपवाद का सामना करने की कोशिश करता है, तो यह अपवाद को पकड़ने के लिए कैच ब्लॉक को नियंत्रण प्रदान करता है। कैच ब्लॉक में कोड का एक सेट भी हो सकता है जिसे अपवाद के मामले में प्रोग्राम को निष्पादित करने की आवश्यकता होती है या यह केवल अपवाद को पकड़ सकता है और परिदृश्य और आवश्यकता के आधार पर कुछ भी नहीं कर सकता है।
आखिरकार
अंतिम ब्लॉक का उपयोग किसी विशेष कोड स्निपेट या अनुदेश को निष्पादित करने के लिए किया जाता है, भले ही अपवाद की घटना के बावजूद। अंत में ब्लॉक को हमेशा निष्पादित किया जाता है, और यह कोशिश कर रहा ब्लॉक के ठीक बाद निष्पादित किया जा सकता है यदि प्रोग्राम को कोई अपवाद नहीं मिलता है या प्रोग्राम को अपवाद के रूप में पकड़ने के बाद इसे ब्लॉक ब्लॉक के बाद निष्पादित किया जा सकता है।
अपवाद कक्षाएं C # में मौजूद हैं
C # में सभी अपवाद प्रत्यक्ष या अप्रत्यक्ष रूप से व्युत्पन्न हैं प्रणाली। अपवाद कक्षा।
बिन फ़ाइल विंडोज़ 10 कैसे खोलें
आइए हम कुछ सबसे सामान्य अपवादों पर एक संक्षिप्त नज़र डालें:
- System.IO.IOException: यह किसी भी इनपुट और आउटपुट संबंधित त्रुटियों को संभालता है।
- System.DividedByZeroException: जब संख्या को शून्य से विभाजित किया जाता है, तो हैंडल त्रुटि को फेंक दिया जाता है।
- System.NullReferenceException : जब कोई अशक्त वस्तु संदर्भित हो, तो कोई भी त्रुटि संभालती है।
- System.IndexOutOfRangeException: जब प्रोग्राम किसी इंडेक्स तक पहुँचने की कोशिश करता है, तो एरल्स के लिए वह सीमा से बाहर है।
- System.OutOfMemoryException: अपर्याप्त मेमोरी उपस्थिति के कारण हैंडल की गई त्रुटि।
C # में अपवाद हैंडलिंग
C # के पास किसी भी प्रकार के अपवाद को संभालने के लिए एक बहुत अच्छी तरह से परिभाषित समाधान है जो कोशिश और कैच ब्लॉक का उपयोग करके हो सकता है। इस ब्लॉक का उपयोग करते हुए, कार्यक्रम के मुख्य विवरण को अन्य कथनों से अलग किया जा सकता है।
उदाहरण:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } Console.ReadLine(); } } }
उपरोक्त उदाहरण में, हमने कोशिश की ब्लॉक के तहत एक फ़ाइल खोलने के लिए हमारे कोड को संलग्न किया है। जैसा कि हमने कोई मान्य फ़ाइल पथ प्रदान नहीं किया है, कोड को एक त्रुटि फेंकना चाहिए। अब, हमने अपने कैच ब्लॉक में त्रुटि पकड़ी है। यदि फ़ाइल दिए गए फ़ाइल पथ में मौजूद नहीं है, तो कोड FileNotFoundException को फेंक देगा।
यह अपवाद कैच ब्लॉक द्वारा पकड़ा जाएगा जहां हमने पहले से ही अपेक्षित अपवाद को परिभाषित किया है। अब, आइए कल्पना करें कि यदि हमारा कोड कुछ अन्य अपवादों को फेंकता है, जो कि हम पहले ही परिभाषित कर चुके हैं, तो इसके अलावा, हमारा ब्लॉक इसे पकड़ नहीं पाएगा। किसी भी सामान्य अपवाद को पकड़ने के लिए, हम एक और कैच ब्लॉक जोड़ेंगे।
आइए हम अपने अद्यतन कोड पर एक नज़र डालें:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } Console.ReadLine(); } } }
यह जेनेरिक कैच ब्लॉक उन सभी अपवादों को पकड़ने में सक्षम होगा, जिन्हें ट्राई ब्लॉक के अंदर डाला जा सकता है। अब, इसे पूरा करने के लिए अंत में ब्लॉक भी जोड़ें। इसे सरल बनाने के लिए, हमें अंत में ब्लॉक का उपयोग करके एक संदेश प्रिंट करना चाहिए।
कैसे जावा फ़ाइलों के साथ .jar फ़ाइलें खोलने के लिए 10
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
यहां, हमने केवल एक साधारण संदेश के साथ अंत में ब्लॉक को जोड़ा है। आप ब्लॉक में कुछ कस्टम स्टेटमेंट भी जोड़ सकते हैं। लेकिन कार्यक्रम की समग्र संरचना यहां प्रदर्शित एक के समान रहेगी।
अंत में ब्लॉक को हमेशा अपवाद के रूप में निष्पादित किया जाएगा चाहे कोई अपवाद हो या नहीं। कार्यक्रम की कोशिश ब्लॉक से शुरू होगी और फिर कोई त्रुटि / अपवाद नहीं होने पर सीधे अंत में ब्लॉक में चला जाएगा। यदि यह एक अपवाद का सामना करता है, तो यह पहले पकड़ने के लिए आगे बढ़ेगा और फिर अंतिम ब्लॉक को निष्पादित करेगा।
क्या कोई शर्त है जब अंत में ब्लॉक निष्पादित नहीं किया जाएगा?
जैसा कि नाम से पता चलता है कि अंतिम ब्लॉक अंत में निष्पादित होता है और कोड का अंतिम ब्लॉक होता है जिसे निष्पादित किया जाएगा। जब एप्लिकेशन चल रहा हो तो अंत में ब्लॉक हमेशा निष्पादित होगा। एकमात्र समय जब अंततः ब्लॉक निष्पादित नहीं होगा, जब एप्लिकेशन क्रैश हो जाता है या प्रक्रिया कमांड का उपयोग करके जानबूझकर मारा जाता है।
निष्कर्ष
यदि अपवादों को ठीक से नियंत्रित नहीं किया जाता है, तो वे आपके प्रोग्राम के अंदर त्रुटि का कारण बनेंगे। यदि आपने अपने कोड के अंदर कहीं भी ब्लॉक का उपयोग / पकड़ने का प्रयास नहीं किया है, तो आपका प्रोग्राम अपवाद दिखाने वाले संदेश के साथ निरस्त हो जाएगा। एक सामान्य उपयोगकर्ता के लिए, स्रोत कोड पर वापस त्रुटि का पता लगाना और इसे हल करना बहुत मुश्किल होगा।
इसलिए, अपने प्रोग्राम में अपवाद हैंडलिंग प्रदान करना हमेशा एक अच्छा अभ्यास है।
नमूना कोड
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { try { File.OpenRead('InvalidFile'); } catch (FileNotFoundException ex) { Console.WriteLine(ex.ToString()); } catch (Exception e) { Console.WriteLine(e.ToString()); } finally { Console.WriteLine('Finally block executed'); } Console.ReadLine(); } } }
=> हमारी पूरी सी # प्रशिक्षण श्रृंखला यहां देखें
अनुशंसित पाठ
- कोड उदाहरण के साथ सी # कार्य / तरीके ट्यूटोरियल
- उदाहरणों के साथ पायथन डेटटाइम ट्यूटोरियल
- एसवीएन ट्यूटोरियल: स्रोत कोड प्रबंधन तोड़फोड़ का उपयोग करना
- सी # स्ट्रिंग ट्यूटोरियल - कोड उदाहरण के साथ स्ट्रिंग के तरीके
- C ++ में अपवाद हैंडलिंग
- कछुआ एसवीएन ट्यूटोरियल: कोड रिपोजिटरी में संशोधन
- AWS CodeBuild ट्यूटोरियल: मावेन बिल्ड से कोड निकालना
- SoapUI Groovy लिपियों में अपवाद को कैसे हैंडल करें - SoapUI Tutorial # 11