नया अपवाद बनाना और फेंकना


130

मैं PowerShell में एक नया अपवाद कैसे बना और फेंक सकता हूं?

मैं एक विशिष्ट त्रुटि के लिए अलग-अलग चीजें करना चाहता हूं।


2
क्या आप एक कस्टम अपवाद फेंकना चाह रहे हैं? क्या [यह] [१] मदद करता है? [१]: stackoverflow.com/questions/11703180/…
bala_88 १६'१२

1
इस पोस्ट पर एक नज़र डालें: stackoverflow.com/questions/2182666/…
एंड्री मरचुक

जवाबों:


194

किसी विशिष्ट अपवाद को कॉल करने के लिए जैसे कि FileNotFoundException इस प्रारूप का उपयोग करें

if (-not (Test-Path $file)) 
{
    throw [System.IO.FileNotFoundException] "$file not found."
}

सामान्य अपवाद को फेंकने के लिए एक स्ट्रिंग के बाद थ्रो कमांड का उपयोग करें।

throw "Error trying to do a task"

जब एक कैच के अंदर उपयोग किया जाता है, तो आप त्रुटि को ट्रिगर करने के बारे में अतिरिक्त जानकारी प्रदान कर सकते हैं


सी ++ में, तार को फेंकने के लिए हतोत्साहित किया जाता है, क्योंकि वे अपवाद पदानुक्रम में नहीं हैं। यह सिर्फ पॉवर्सशेल में काम करता है, लेकिन शायद वे जाने का सबसे अच्छा तरीका नहीं हैं?
राउल सालिनास-मोंटियागुडो

3
यदि आप अपनी स्क्रिप्ट में try..catches का उपयोग कर रहे हैं और आपके पास विशिष्ट अपवादों को कॉल करने वाले कई कैच स्टेटमेंट हैं, तो निश्चित रूप से, आप अपवाद प्रकार निर्दिष्ट करना चाहेंगे। मैं निश्चित नहीं हूं कि C ++ का संदर्भ क्यों बनाया गया है। पॉवर्सशेल स्क्रिप्टिंग में, थ्रो स्टेटमेंट आमतौर पर एक वर्णनात्मक संदेश के साथ स्क्रिप्ट से बाहर निकलने का इरादा होता है। मैं एक बहस को चिंगारी नहीं लग रहा हूं, लेकिन पॉवर्सशेल और सी ++ बहुत अलग जानवर हैं। पॉवर्सशेल में C ++ या C # सर्वोत्तम प्रथाओं को लागू किया जाना चाहिए, क्योंकि स्क्रिप्टिंग कार्यात्मक प्रोग्रामिंग के साथ अधिक निकटता से जुड़ा हुआ है।
WiiBopp
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.