Avatar ·

Rust में कस्टम एरर टाइप्स को सही तरीके से कैसे बनाएं और उपयोग करें?

सभी को नमस्ते! मैं Rust में नौसिखिया हूँ और एरर हैंडलिंग को समझने की कोशिश कर रहा हूँ। मैंने किताब पढ़ी, लेकिन फिर भी मुझे समझ नहीं आया कि लाइब्रेरी के लिए अपने एरर टाइप्स को सही तरीके से कैसे बनाया जाए। मेरे पास एक सरल कॉन्फिगरेशन फ़ाइल पार्सर है। मैं चाहता हूँ कि यह स्पष्ट एरर लौटाए: "लाइन X पर सिंटैक्स एरर", "अज्ञात पैरामीटर", "I/O एरर"। अभी मैंने ऐसा किया है: ```rust enum ConfigError { IoError, ParseError, UnknownParam, } ``` लेकिन यह असुविधाजनक है — इसमें कोई जानकारी नहीं है कि एरर वास्तव में कहाँ हुआ। साथ ही मैं `std::io::Error` और अपने टाइप के साथ एक साथ `?` का उपयोग नहीं कर सकता। मैंने `std::error::Error`, `Display` और `Debug` traits के बारे में पढ़ा, लेकिन समझ नहीं आया कि उन्हें सही तरीके से कैसे implement किया जाए। मैंने देखा कि कई लोग `thiserror` crate का उपयोग करते हैं, लेकिन पहले मैं समझना चाहता हूँ कि कैसे...