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

C# में चेंड एक्सेप्शन्स

चेंड एक्सेप्शन्स (चेन किए गए अपवाद) एक्सेप्शन की श्रृंखला होती है जहां प्रत्येक एक्सेप्शन पिछले एक्सेप्शन को इनर एक्सेप्शन के रूप में लपेटता है। यह मूल कारण को संरक्षित करता है।

उदाहरण

using System;

class Demo {
    static void Main(string[] args) {
        try {
            One();
        } catch (Exception e) {
            Console.WriteLine(e);
        }
    }
    
    static void One() {
        try {
            Two();
        } catch (Exception e) {
            throw new Exception("पहला अपवाद!", e);
        }
    }
    
    static void Two() {
        try {
            Three();
        } catch (Exception e) {
            throw new Exception("दूसरा अपवाद!", e);
        }
    }
    
    static void Three() {
        try {
            Last();
        } catch (Exception e) {
            throw new Exception("तीसरा अपवाद!", e);
        }
    }
    
    static void Last() {
        throw new Exception("अंतिम अपवाद!");
    }
}

आउटपुट

System.Exception: पहला अपवाद! ---> System.Exception: दूसरा अपवाद! ---> System.Exception: तीसरा अपवाद! ---> System.Exception: अंतिम अपवाद!
   at Demo.Last()
   at Demo.Three()
   at Demo.Two()
   at Demo.One()
   at Demo.Main()

मुख्य बिंदु:

  • throw new Exception("संदेश", innerException) - चेनिंग के लिए कंस्ट्रक्टर
  • Exception.InnerException - पिछला अपवाद एक्सेस करने के लिए प्रॉपर्टी
  • स्टैक ट्रेस पूरी चेन दिखाता है
  • डीबगिंग के लिए मूल कारण पहचानने में सहायक

सर्वोत्तम अभ्यास:

  • हमेशा मूल अपवाद को इनर एक्सेप्शन के रूप में पास करें
  • सार्थक संदेश जोड़ें जो संदर्भ बताएं
  • throw; (बिना आर्गुमेंट) का उपयोग करके री-थ्रॉ करें ताकि स्टैक ट्रेस संरक्षित रहे
  1. C++ में एक्सेप्शन कैसे काम करते हैं C++ में एक्सेप्शन कैसे काम करते हैं

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

  1. Pry में अपवाद हैंडलिंग में महारत हासिल करें: Rails कंसोल के लिए उन्नत तकनीकें Pry में अपवाद हैंडलिंग में महारत हासिल करें: Rails कंसोल के लिए उन्नत तकनीकें

    यदि आप मेरी तरह हैं, तो आप Rails कंसोल का बहुत उपयोग करते हैं। और अब तक मुझे लगता है कि हर कोई सहमत है कि Pry, Rails कंसोल के लिए अब तक की सबसे अच्छी चीज है... ठीक है, कभी भी। Pry में अंतर्निहित कुछ वास्तव में कूल फीचर्स हैं जो अपवादों के साथ काम करना सादे पुराने IRB की तुलना में बहुत आसान बनाते हैं

  1. Ruby में कस्टम अपवाद में महारत हासिल करें: एक चरण-दर-चरण गाइड Ruby में कस्टम अपवाद में महारत हासिल करें: एक चरण-दर-चरण गाइड

    Ruby में अपने स्वयं के अपवाद बनाना आसान है। बस इन चरणों का पालन करें: 1. एक नई क्लास बनाएं अपवाद क्लास हैं, Ruby में बाकी सब की तरह! एक नए प्रकार का अपवाद बनाने के लिए, बस एक क्लास बनाएं जो StandardError, या उसके बच्चों में से एक से इनहेरिट करती है। class MyError < StandardError end raise MyError