पॉशकोड, http://poshcode.org/3226 पर एक Get-WebFile स्क्रिप्ट को देखते हुए , मैंने इस अजीब से दिखने वाले गर्भनिरोधक पर ध्यान दिया:
$URL_Format_Error = [string]"..."
Write-Error $URL_Format_Error
return
निम्नलिखित के विपरीत इसका क्या कारण है?
$URL_Format_Error = [string]"..."
Throw $URL_Format_Error
या इससे भी बेहतर:
$URL_Format_Error = New-Object System.FormatException "..."
Throw $URL_Format_Error
जैसा कि मैं समझता हूं, आपको गैर-समाप्ति त्रुटियों के लिए लिखने-त्रुटि का उपयोग करना चाहिए, और त्रुटियों को समाप्त करने के लिए फेंकना चाहिए, इसलिए यह मुझे लगता है कि आपको रिटर्न के बाद लिखने-त्रुटि का उपयोग नहीं करना चाहिए। क्या कोई अंतर है?
return
आता है ; इसके बजाय, यह पाइपलाइन में अगले इनपुट ऑब्जेक्ट के लिए आगे बढ़ता है । वास्तव में, यह गैर-समाप्ति त्रुटियों को उत्पन्न करने के लिए विशिष्ट परिदृश्य है: यदि आगे इनपुट वस्तुओं को संसाधित करना अभी भी संभव है। process
Throw
एक स्क्रिप्ट -त्रुटि उत्पन्न करता है , जो कि कथन के अनुसार समान नहीं है-त्रुटि त्रुटियों को ट्रिगर करता है, उदाहरण के लिए, Get-Item -NoSuchParameter
या 1 / 0
।