ดูที่สคริปต์ Get-WebFile บน PoshCode, http://poshcode.org/3226ฉันสังเกตเห็นการคุมกำเนิดที่แปลกประหลาดนี้:
$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
ดังที่ฉันเข้าใจแล้วคุณควรใช้ Write-Error สำหรับข้อผิดพลาดที่ไม่สิ้นสุดและการโยนเพื่อยกเลิกข้อผิดพลาดดังนั้นฉันคิดว่าคุณไม่ควรใช้ Write-Error ตามด้วย Return มีความแตกต่างหรือไม่?
return
ไม่ได้กลับไปที่โทรในที่process
บล็อกของ (ขั้นสูง) ฟังก์ชั่น; แต่จะดำเนินต่อไปยังวัตถุอินพุตถัดไปในไปป์ไลน์ อันที่จริงนี่เป็นสถานการณ์ทั่วไปสำหรับการสร้างข้อผิดพลาดที่ไม่สิ้นสุด: หากการประมวลผลวัตถุอินพุตเพิ่มเติมยังคงเป็นไปได้
Throw
สร้างสคริปต์ผิดพลาด -terminating ซึ่งไม่ได้เป็นเช่นเดียวกับคำสั่ง -terminating ข้อผิดพลาดเรียกเช่นโดยการหรือGet-Item -NoSuchParameter
1 / 0