Bagikan melalui


about_Throw

Deskripsi singkat

Menjelaskan kata kunci throw yang menghasilkan kesalahan penghentian.

Deskripsi panjang

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

Misalnya, Anda dapat menggunakan throw kata kunci di blok if pernyataan pernyataan untuk merespons kondisi atau di catch blok try/catch/finally pernyataan.

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

Syntax

Sintaks kata kunci throw adalah sebagai berikut:

throw [<expression>]

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

throw
Exception: ScriptHalted

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

Melempar string

Ekspresi opsional dalam pernyataan throw dapat 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 di variabel otomatis $Error 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 dapat throw objek ErrorRecord atau pengecualian .NET. Contoh berikut menggunakan kata kunci throw untuk melemparkan 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 kunci throw dapat menghasilkan objek ErrorRecord. Properti Pengecualian dari 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 variabel otomatis $Error.

Menggunakan throw untuk membuat parameter wajib

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

Lihat juga