अपवाद एक समस्या है जो किसी प्रोग्राम के निष्पादन के दौरान उत्पन्न होती है। 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में