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
blokfinally
try
-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.