PowerShell:
एरर्स को हैंडल करना

कैसे करें:

# अपवादों को संभालने के लिए मूल Try-Catch
try {
    # कोड जो एक त्रुटि को प्रेरित कर सकता है
    $result = 1 / 0
} catch {
    # यदि कोई त्रुटि हुई तो क्या करना है
    Write-Host "उफ्फ, एक त्रुटि हुई: $_"
}

# कस्टम त्रुटि संदेश निकालना
try {
    Get-Item "nonexistentfile.txt" -ErrorAction Stop
} catch {
    Write-Host "फाइल नहीं मिल सकी।"
}

# पिछली त्रुटि का निरीक्षण करने के लिए $Error चर का उपयोग

गहन अध्ययन

PowerShell अपनी शुरुआत Monad के रूप में करने के बाद काफी आगे आ चुका है। त्रुटि संभालना समय के साथ और अधिक मजबूत हो गया, और इसमें कई अन्य प्रोग्रामिंग भाषाओं की तरह की सुविधाएँ मिलीं। try-catch-finally सिंटैक्स एक ऐसी ही सुविधा है जिसे भाषाओं जैसे C# से अपनाया गया है। इससे पहले, स्क्रिप्ट लिखने वाले लोग शर्तों की जाँच करने और $Error स्वचालित चर का उपयोग करने पर भारी निर्भरता रखते थे।

PowerShell के पास दो मुख्य प्रकार की त्रुटियाँ हैं: समापक और गैर-समापक। समापक त्रुटियाँ स्क्रिप्ट को रोक देंगी जब तक कि एक try-catch ब्लॉक में न पकड़ा जाए, जबकि गैर-समापक वाली ऐसा नहीं करेंगी जब तक आप -ErrorAction Stop का निर्दिष्ट न करें। यह अंतर बहुत महत्वपूर्ण है क्योंकि इससे त्रुटि संभालने पर सूक्ष्म नियंत्रण मिलता है, यह निर्णय लेने में कि क्या एक त्रुटि सही मायने में पूरी स्क्रिप्ट को रोकने के लिए है या इसे केवल दर्ज किया जा सकता है और अनदेखा किया जा सकता है।

PowerShell की त्रुटि संभालने की क्षमता finally ब्लॉक के लिए भी अनुमति देती है, जो कुछ भी हो - चाहे एक त्रुटि हुई हो या नहीं - चलती है। यह सफाई कार्यों के लिए शानदार है।

जब आप स्क्रिप्टिंग की गहराई में होते हैं, तो आप विशिष्ट अपवाद प्रकारों को संभाल सकते हैं, जो आपको और भी सूक्ष्म नियंत्रण देता है।

वैकल्पिक रूप से, पुराने स्कूल का -ErrorVariable पैरामीटर है त्रुटियों को कैप्चर करने के लिए बिना किसी अपवाद के फेकने के। और $? चर आपको बताता है कि पिछला ऑपरेशन सफल था या नहीं। ये उपकरण उपयोगी हैं, हालांकि एक मजबूत try-catch की तुलना में थोड़े कम साफ-सुथरे हैं।

यह भी देखें