C#:
एरर्स को हैंडल करना
कैसे करें:
चलिए ट्राय-कैच ब्लॉक से शुरुआत करते हैं। यह रस्सीबाज के नीचे सुरक्षा जाल लगाने जैसा है। अगर वे फिसल जाएं, तो वे नीचे नहीं गिरते—वे पकड़ लिए जाते हैं।
using System;
class ErrorHandlingExample {
static void Main() {
try {
int[] numbers = {1, 2, 3};
Console.WriteLine(numbers[5]); // उप्स, इंडेक्स सीमा के बाहर है!
} catch (IndexOutOfRangeException e) {
Console.WriteLine("त्रुटि पकड़ी गयी: " + e.Message);
}
}
}
जब चीज़ें गलत हो जाएं तो नमूना आउटपुट:
त्रुटि पकड़ी गयी: इंडेक्स एरे की सीमा के बाहर था।
अब हम एक फाइनली ब्लॉक जोड़ते हैं—यह वह है जो हर हालत में होता है, जैसे करों का भुगतान।
try {
// संभावित त्रुटिपूर्ण कोड यहां
} catch (SomeSpecificException e) {
// उस विशेष त्रुटि को यहां संभालें
} finally {
// यह कोड हर हालत में चलता है
Console.WriteLine("यह हमेशा चलता है.");
}
गहराई से अध्ययन
त्रुटि संभालना C# की जन्म से ही में है। समय के साथ, इसमें विकास हुआ है। पुराने दिनों में, प्रोग्रामर परेशानियों को संकेत देने के लिए रिटर्न कोड्स या ग्लोबल फ्लैग्स पर निर्भर थे—जो कि जटिल और त्रुटि-प्रवण थे।
C# अपवादों का उपयोग करता है, एक अधिक आधुनिक दृष्टिकोण। जब कोई अप्रत्याशित स्थिति आती है, एक अपवाद फेंका जाता है, ठीक वैसे ही जैसे फुटबॉल में खेल में फ्लैग फेंका जाता है। ट्राय, कैच, और फाइनली ब्लॉक्स के साथ संरचित अपवाद संभालना पुराने स्कूल की त्रुटि जांच से अधिक स्पष्ट और साफ है।
विकल्प? ज़रूर। ‘UnhandledExceptionEventHandler’ है जो अपवादों को पकड़ता है जो स्लिप हो जाते हैं। या फिर एसिंक कोड में, त्रुटि संभालना थोड़ा सिर के ऊपर घूम जाता है ‘Task’ ऑब्जेक्ट्स के साथ जो अपनी अपवादों का बोझ लेकर चलते हैं।
कार्यान्वयन विवरण—जो कि ठीक प्रिंट के बराबर है—मायने रखते हैं। अपवाद महंगे हो सकते हैं, प्रदर्
शन को कम कर सकते हैं अगर ये हर बिना सोचे-समझे फेंक दिए जाएं। इसलिए, हम इनका उपयोग केवल असाधारण स्थितियों के लिए करते हैं, हर रोज़ के तर्क नियंत्रण के लिए नहीं।