Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C#

सी # में अपवाद

अपवाद एक समस्या है जो किसी प्रोग्राम के निष्पादन के दौरान उत्पन्न होती है। A C# अपवाद एक असाधारण परिस्थिति की प्रतिक्रिया है जो किसी प्रोग्राम के चलने के दौरान उत्पन्न होती है, जैसे कि शून्य से विभाजित करने का प्रयास।

अपवाद प्रोग्राम के एक भाग से दूसरे भाग में नियंत्रण स्थानांतरित करने का एक तरीका प्रदान करते हैं। C# अपवाद प्रबंधन चार खोजशब्दों पर आधारित है -

  • कोशिश करें - एक कोशिश ब्लॉक कोड के एक ब्लॉक की पहचान करता है जिसके लिए विशेष अपवाद सक्रिय होते हैं। इसके बाद एक या अधिक कैच ब्लॉक होते हैं।

  • पकड़ें - एक प्रोग्राम उस स्थान पर अपवाद हैंडलर के साथ एक अपवाद पकड़ता है जहां आप समस्या को संभालना चाहते हैं। कैच कीवर्ड एक अपवाद को पकड़ने का संकेत देता है।

  • आखिरकार -अंतिम रूप से ब्लॉक का उपयोग बयानों के दिए गए सेट को निष्पादित करने के लिए किया जाता है, चाहे कोई अपवाद फेंका गया हो या नहीं फेंका गया हो। उदाहरण के लिए, यदि आप कोई फ़ाइल खोलते हैं, तो उसे बंद होना चाहिए, चाहे कोई अपवाद उठाया गया हो या नहीं।

  • फेंक दें - जब कोई समस्या दिखाई देती है तो एक प्रोग्राम अपवाद फेंकता है। यह थ्रो कीवर्ड का उपयोग करके किया जाता है।

सी # अपवाद कक्षाओं द्वारा दर्शाए जाते हैं। सी # में अपवाद वर्ग मुख्य रूप से प्रत्यक्ष या परोक्ष रूप से सिस्टम से प्राप्त होते हैं। अपवाद वर्ग। सिस्टम से प्राप्त कुछ अपवाद वर्ग। अपवाद वर्ग System.ApplicationException और System.SystemException वर्ग है।

उदाहरण

आइए एक उदाहरण देखें -

using System;
using System.Reflection;
public class Demo {
   public static void Main(){
      Type type = typeof(Subject);
      try {
         FieldInfo fieldInfo = type.GetField("SubName");
         MemberInfo[] info = type.GetMember("SubName");
         Console.Write("Members = ");
         for (int i = 0; i < info.Length; i++)
            Console.WriteLine(" {0}", info[i]);
         Console.WriteLine("FieldInfo = {0}", fieldInfo);
      }
      catch (ArgumentNullException e){
         Console.Write("{0}", e.GetType(), e.Message);
      }
   }
}
public class Subject{
   public string SubName = "Science";
}

आउटपुट

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

Members = System.String SubName
FieldInfo = System.String SubName

उदाहरण

आइए अब एक और उदाहरण देखें -

using System;
public class Demo {
   int result;
   Demo() {
      result = 0;
   }
   public void division(int num1, int num2) {
      try {
         result = num1 / num2;
      }
      catch (DivideByZeroException e) {
         Console.WriteLine("Exception caught = {0}", e);
      }
      finally {
         Console.WriteLine("Result = {0}", result);
      }
   }
   public static void Main(string[] args) {
      Demo d = new Demo();
      d.division(100, 0);
   }
}

आउटपुट

यह निम्नलिखित आउटपुट उत्पन्न करेगा -

Exception caught = System.DivideByZeroException: Attempted to divide by zero.
   at Demo.division(Int32 num1, Int32 num2) in d:\Windows\Temp\n0kebv45.0.cs:line 11 
Result = 0
में
  1. जेएसपी में अपवाद कैसे संभालें?

    टैग किसी भी फेंकने योग्य . को पकड़ता है जो उसके शरीर में होता है और वैकल्पिक रूप से उसे उजागर करता है। इसका उपयोग त्रुटि प्रबंधन के लिए और समस्या से अधिक सुंदर ढंग से निपटने के लिए किया जाता है। विशेषता टैग में निम्नलिखित विशेषताएं हैं - विशेषता विवरण आवश्यक डिफ़ॉल्ट var जावा.लैंग को होल्ड करने

  1. C++ में एक्सेप्शन हैंडलिंग बेसिक्स

    सी ++ में, अपवाद हैंडलिंग रनटाइम त्रुटियों को संभालने की एक प्रक्रिया है। अपवाद एक घटना है जिसे सी ++ में रनटाइम पर फेंक दिया जाता है। सभी अपवाद std::Exception वर्ग से लिए गए हैं। यह एक रनटाइम त्रुटि है जिसे संभाला जा सकता है। अगर हम अपवाद को हैंडल नहीं करते हैं तो यह अपवाद संदेश को प्रिंट करता है औ

  1. रूबी में अपवाद

    एक अपवाद एक विशेष डेटा संरचना है जिसमें असाधारण . के बारे में जानकारी होती है आपके आवेदन में हो रही स्थिति। अपवाद तब भेजे जाते हैं जब आपका प्रोग्राम चलना जारी नहीं रख सकता क्योंकि यह नहीं जानता कि किसी विशिष्ट स्थिति से कैसे निपटा जाए। रूबी में, हम ऐसे सिग्नल भेजने को कहते हैं उठाना एक अपवाद। raise