ErrorOr C# (.NET): त्रुटि प्रबंधन का पूर्ण गाइड उदाहरण सहित

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

ErrorOr C# (.NET): बिना एक्सेप्शन के त्रुटि प्रबंधन का पूर्ण गाइड

C# (.NET) में आधुनिक डेवलपमेंट में, त्रुटि प्रबंधन पारंपरिक रूप से एक्सेप्शन (exceptions) पर आधारित होता है। लेकिन इस दृष्टिकोण की कुछ कमियां हैं: एक्सेप्शन प्रोग्राम के प्रवाह को बाधित करते हैं, स्टैक पर अतिरिक्त लोड डालते हैं, और सबसे महत्वपूर्ण बात, वे हमेशा डेवलपर को स्पष्ट रूप से संकेत नहीं देते कि कोई मेथड त्रुटि के साथ समाप्त हो सकता है। ErrorOr लाइब्रेरी एक विकल्प प्रस्तुत करती है — एक कार्यात्मक दृष्टिकोण, जहां ऑपरेशन का परिणाम एक विशेष ऑब्जेक्ट के रूप में लौटाया जाता है, जिसमें या तो सफल मान हो सकता है या त्रुटियों की सूची।

ErrorOr का मुख्य विचार त्रुटि प्रबंधन को स्पष्ट और टाइप-सुरक्षित बनाना है। एक्सेप्शन फेंकने के बजाय, मेथड ErrorOr<TValue> प्रकार का ऑब्जेक्ट लौटाता है। कॉल करने वाला कोड बाध्य है कि वह परिणाम का उपयोग करने से पहले जांच ले कि ऑपरेशन सफल रहा या नहीं। यह अनहैंडल किए गए एक्सेप्शन से संबंधित कई बगों को रोकता है और कोड को अधिक पूर्वानुमानित और समझने में आसान बनाता है।

यह लाइब्रेरी उन भाषाओं से प्रेरित है जिनमें उन्नत टाइप सिस्टम है, जैसे Rust (प्रकार Result<T, E>) और F# (प्रकार Result<'T, 'TError>)। ErrorOr Clean Architecture, Domain-Driven Design (DDD) और CQRS प्रोजेक्ट्स के लिए आदर्श है, जहां सफल और त्रुटिपूर्ण परिदृश्यों को स्पष्ट रूप से अलग करना महत्वपूर्ण है। यह "Railway Oriented Programming" पैटर्न के साथ भी शानदार काम करता है, जिससे त्रुटियों के स्वचालित स्थानांतरण के साथ ऑपरेशनों की श्रृंखला बनाई जा सकती है।

इंस्टॉलेशन

.NET प्रोजेक्ट में ErrorOr लाइब्रेरी को इंस्टॉल करना NuGet पैकेज मैनेजर के माध्यम से किया जाता है। टर्मिनल या पैकेज मैनेजर कंसोल में निम्नलिखित में से कोई एक कमांड चलाएं:

dotnet add package ErrorOr

या, यदि आप Visual Studio में Package Manager Console का उपयोग कर रहे हैं:

Install-Package ErrorOr

इंस्टॉलेशन के बाद, अपने कोड फ़ाइल में नेमस्पेस शामिल करें:

using ErrorOr;

त्वरित शुरुआत: न्यूनतम कार्यशील उदाहरण

आइए एक सरल फंक्शन लिखें जो एक संख्या को दूसरी से विभाजित करता है। शून्य से विभाजन पर एक्सेप्शन फेंकने के बजाय, हम ErrorOr<double> लौटाएंगे।

using ErrorOr;

public static class Calculator
{
    public static ErrorOr<double> Divide(double dividend, double divisor)
    {
        if (divisor == 0)
        {
            // यदि भाजक शून्य है तो त्रुटि लौटाएं
            return Error.Validation("Calculator.DivisionByZero", "Divisor cannot be zero.");
        }

        // सफल परिणाम लौटाएं
        return dividend / divisor;
    }
}

// उपयोग
public class Program
{
    public static void Main()
    {
        ErrorOr<double> result = Calculator.Divide(10, 2);

        if (result.IsError)
        {
            Console.WriteLine($"Operation failed: {result.FirstError.Description}");
        }
        else
        {
            Console.WriteLine($"Result: {result.Value}");
        }

        // त्रुटि वाला उदाहरण
        ErrorOr<double> errorResult = Calculator.Divide(10, 0);
        if (errorResult.IsError)
        {
            Console.WriteLine($"Operation failed: {errorResult.FirstError.Description}");
        }
    }
}

इस उदाहरण में, हम मुख्य तत्व देखते हैं: Error.Validation() के माध्यम से त्रुटि बनाना, सफल मान लौटाना (अंतर्निहित रूपांतरण), और IsError प्रॉपर्टी के माध्यम से परिणाम की जांच करना।

मुख्य तरीके, फंक्शन और क्लासेस

नीचे ErrorOr लाइब्रेरी के प्रमुख घटकों का विस्तृत विवरण दिया गया है। प्रत्येक तत्व के लिए सिग्नेचर, विवरण और कार्यशील कोड उदाहरण दिया गया है।

1. क्लास ErrorOr<TValue>

सिग्नेचर: public rea

अनुशंसाएँ