Melihat skrip Get-WebFile di PoshCode, http://poshcode.org/3226 , saya perhatikan alat aneh yang ini:
$URL_Format_Error = [string]"..."
Write-Error $URL_Format_Error
return
Apa alasannya dibandingkan dengan yang berikut ini?
$URL_Format_Error = [string]"..."
Throw $URL_Format_Error
Atau lebih baik lagi:
$URL_Format_Error = New-Object System.FormatException "..."
Throw $URL_Format_Error
Seperti yang saya pahami, Anda harus menggunakan Write-Error untuk kesalahan yang tidak berhenti, dan Lempar untuk mengakhiri kesalahan, jadi menurut saya Anda tidak boleh menggunakan Write-Error diikuti oleh Return. Apakah ada perbedaan?
return
tidak tidak kembali ke pemanggil dalam process
blok fungsi (lanjutan); sebagai gantinya, ia melanjutkan ke objek input berikutnya dalam pipa. Memang, ini adalah skenario khas untuk menghasilkan kesalahan yang tidak berhenti: jika memproses objek input lebih lanjut masih dimungkinkan.
Throw
menghasilkan galat pemutusan skrip , yang tidak sama dengan galat pemutusan pernyataan yang dipicu, misalnya, oleh Get-Item -NoSuchParameter
atau 1 / 0
.