about_Throw

Deskripsi singkat

Menjelaskan throw kata kunci yang menghasilkan kesalahan penghentian.

Deskripsi panjang

Kata throw kunci menyebabkan kesalahan penghentian. Anda dapat menggunakan throw kata kunci untuk menghentikan pemrosesan perintah, fungsi, atau skrip.

Misalnya, Anda dapat menggunakan throw kata kunci di blok if skrip pernyataan untuk menanggapi kondisi atau di catch blokfinallytry-catch-pernyataan.

Kata throw kunci dapat melemparkan objek apa pun, seperti string pesan pengguna atau objek yang menyebabkan kesalahan.

Sintaks

Sintaks kata throw kunci adalah sebagai berikut:

throw [<expression>]

Ekspresi dalam throw sintaks bersifat opsional. throw Saat pernyataan tidak muncul dalam catch blok, dan tidak menyertakan ekspresi, pernyataan tersebut menghasilkan kesalahan ScriptHalted.

throw
Exception: ScriptHalted

throw Jika kata kunci digunakan dalam catch blok tanpa ekspresi, kata kunci akan melemparkan RuntimeException saat ini lagi. Untuk informasi selengkapnya, lihat about_Try_Catch_Finally.

Melempar string

Ekspresi opsional dalam throw pernyataan bisa berupa string, seperti yang ditunjukkan dalam contoh berikut:

throw "This is an error."
Exception: This is an error.

Melemparkan objek lain

Ekspresi juga bisa menjadi objek yang melempar objek yang mewakili proses PowerShell, seperti yang ditunjukkan dalam contoh berikut:

throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)

Anda dapat menggunakan properti TargetObject dari objek ErrorRecord dalam $Error variabel otomatis untuk memeriksa kesalahan.

$Error[0].TargetObject
 NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
 ------    -----      -----     ------      --  -- -----------
    125   174.44     229.57      23.61    1548   2 pwsh
     63    44.07      81.95       1.75    1732   2 pwsh
     63    43.32      77.65       1.48    9092   2 pwsh

Anda juga throw dapat objek ErrorRecord atau pengecualian .NET. Contoh berikut menggunakan throw kata kunci untuk melempar objek System.FormatException .

$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.

Kesalahan yang dihasilkan

Kata throw kunci dapat menghasilkan objek ErrorRecord . Properti Pengecualian objek ErrorRecord berisi objek RuntimeException . Sisa objek ErrorRecord dan objek RuntimeException bervariasi tergantung pada objek yang dilemparkan.

Objek throw dibungkus dalam objek ErrorRecord , dan objek ErrorRecord secara otomatis disimpan dalam $Error variabel otomatis.

Menggunakan throw untuk membuat parameter wajib

Tidak seperti versi PowerShell sebelumnya, jangan gunakan throw kata kunci untuk validasi parameter. Lihat about_Functions_Advanced_Parameters dengan cara yang benar.

Lihat juga