Go:
मानक त्रुटि के लिए लिखना
कैसे:
Go में, os
पैकेज Stderr
मूल्य प्रदान करता है, जो स्टैंडर्ड एरर फाइल को दर्शाता है। आप इसे fmt.Fprint
, fmt.Fprintf
, या fmt.Fprintln
फंक्शन्स के साथ stderr पर लिखने के लिए उपयोग कर सकते हैं। यहाँ एक सरल उदाहरण है:
package main
import (
"fmt"
"os"
)
func main() {
// stderr पर एक साधारण स्ट्रिंग लिखना
_, err := fmt.Fprintln(os.Stderr, "यह एक त्रुटि संदेश है!")
if err != nil {
panic(err)
}
// Fprintf के साथ स्वरूपित त्रुटि संदेश
errCount := 4
_, err = fmt.Fprintf(os.Stderr, "प्रक्रिया %d त्रुटियों के साथ समाप्त हुई.\n", errCount)
if err != nil {
panic(err)
}
}
नमूना आउटपुट (stderr पर):
यह एक त्रुटि संदेश है!
प्रक्रिया 4 त्रुटियों के साथ समाप्त हुई.
ध्यान रखें, ये संदेश नियमित आउटपुट (stdout) में नहीं दिखाई देंगे, बल्कि त्रुटि स्ट्रीम में दिखाई देंगे, जिसे अधिकांश ऑपरेटिंग सिस्टमों में अलग से रिडायरेक्ट किया जा सकता है।
गहराई में:
स्टैंडर्ड एरर की अवधारणा यूनिक्स दर्शन में गहराई से निहित है, जो स्पष्ट रूप से नॉर्मल आउटपुट और त्रुटि संदेशों के बीच अंतर करती है ताकि डेटा प्रोसेसिंग और हैंडलिंग अधिक कुशल बन सके। Go में, यह परंपरा os
पैकेज के माध्यम से अपनाई जाती है, जो stdin, stdout, और stderr फाइल डिस्क्रिप्टर्स के लिए सीधी पहुँच प्रदान करती है।
os.Stderr
पर सीधे लिखना कई एप्लिकेशनों के लिए उपयुक्त है, Go log
जैसे अधिक सोफिस्टिकेटेड लॉगिंग पैकेजेस भी प्रदान करता है, जो टाइमस्टैम्पिंग और अधिक लचीले आउटपुट कॉन्फिगरेशन्स (उदा., फाइलों में लिखना) जैसी अतिरिक्त सुविधाएँ प्रदान करता है। विशेष रूप से बड़े एप्लिकेशनों के लिए या जहाँ अधिक व्यापक लॉगिंग सुविधाओं की आवश्यकता होती है, log
पैकेज का उपयोग एक बेहतर विकल्प हो सकता है। यह भी उल्लेखनीय है कि Go का त्रुटि संभालने का दृष्टिकोण, जो फंक्शनों से त्रुटियों को लौटाने को प्रोत्साहित करता है, stderr में त्रुटि संदेशों को लिखने की प्रैक्टिस को पूरक बनाता है, त्रुटि प्रबंधन और रिपोर्टिंग के अधिक विस्तृत नियंत्रण की अनुमति देता है।
सारांश में, जबकि stderr में लिखना कई प्रोग्रामिंग भाषाओं में एक मौलिक कार्य है, Go की मानक लाइब्रेरी और डिजाइन सिद्धांत त्रुटि आउटपुट को प्रबंधित करने के लिए सरल और उन्नत दोनों पथ प्रदान करते हैं, उद्योग के व्यापक प्रैक्टिसेज के साथ संरेखित करते हुए साथ ही Go के विशिष्ट डिजाइन एथोस को भी संबोधित करते हैं।