Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kısa açıklama
throw Varsayılan olarak bir betik sonlandırma hatası oluşturan anahtar sözcüğünü açıklar.
Uzun açıklama
anahtar throw sözcüğü varsayılan olarak bir betik sonlandırma hatasına neden olur. Komut, işlev veya betiğin işlenmesini durdurmak için anahtar sözcüğünü kullanabilirsiniz throw .
Deyim sonlandırma hatalarından farklı olarak throw anahtar sözcüğü çağrı yığınının tamamını geri alır. Hata bir try/catch blok veya trap deyim tarafından yakalanmadığı sürece yürütme tamamen durdurulur.
Uyarı
$ErrorActionPreference , öğesini gizleyebilir throw. veya Ignoreolarak ayarlandığında SilentlyContinue hata yayılmaz ve yürütme sonraki deyimde devam eder. ile -ErrorAction SilentlyContinuegelişmiş bir işlev çağrılırken parametresi scope-local $ErrorActionPreference değerine çevrilir, bu nedenle bu işlevin içinde de gizlenir throw . Gizlendiğinde bile, throw yine de içinde $Errorbir girdi kaydeder.
Ignore değeri yalnızca tarafından $PSCmdlet.ThrowTerminatingError()oluşturulanlar gibi sonlandırıcı olmayan hataların kaydını engeller$Error.
Hata kategorileri ve $ErrorActionPreference davranışı hakkında daha fazla bilgi için bkz. about_Error_Handling.
Örneğin, bir koşula throw veya deyimin if bloğuna yanıt vermek için deyiminin catch deyim bloğunda anahtar sözcüğünü try/catch/finally kullanabilirsiniz.
anahtar throw sözcüğü, kullanıcı ileti dizesi veya hataya neden olan nesne gibi herhangi bir nesne oluşturabilir.
Sözdizimi
Anahtar sözcüğün throw söz dizimi aşağıdaki gibidir:
throw [<expression>]
Söz dizimindeki throw ifade isteğe bağlıdır.
throw Deyimi bir catch blokta görünmediğinde ve bir ifade içermediğinde ScriptHalted hatası oluşturur.
throw
Exception: ScriptHalted
throw anahtar sözcüğü ifade içermeyen bir catch blokta kullanılırsa geçerli RuntimeException değerini yeniden oluşturur. Daha fazla bilgi için bkz . about_Try_Catch_Finally.
Dize oluşturma
Bir deyimdeki throw isteğe bağlı ifade, aşağıdaki örnekte gösterildiği gibi bir dize olabilir:
throw "This is an error."
Exception: This is an error.
Diğer nesneleri oluşturma
İfade, aşağıdaki örnekte gösterildiği gibi PowerShell işlemini temsil eden nesneyi oluşturan bir nesne de olabilir:
throw (Get-Process pwsh)
Exception: System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh) System.Diagnostics.Process (pwsh)
Hatayı incelemek için otomatik değişkende ErrorRecord.
$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
Ayrıca ErrorRecord throw nesnesi veya .NET özel durumu da oluşturabilirsiniz. Aşağıdaki örnek, System.FormatException throw kullanır.
$formatError = New-Object System.FormatException
throw $formatError
OperationStopped: One of the identified items was in an invalid format.
Sonuçta oluşan hata
anahtar throw sözcüğü bir ErrorRecord nesnesi oluşturabilir.
ErrorRecord nesnesinin Exception özelliği runtimeexception nesnesi içerir.
ErrorRecord nesnesinin geri kalanı ve RuntimeException nesnesi, oluşan nesneye bağlı olarak değişir.
throw Nesne bir ErrorRecord nesnesine sarmalanır ve ErrorRecord nesnesi otomatik değişkene $Error otomatik olarak kaydedilir.
Zorunlu parametre oluşturmak için kullanma throw
PowerShell'in önceki sürümlerinden farklı olarak parametre doğrulaması için anahtar sözcüğünü throw kullanmayın. Doğru yol için bkz . about_Functions_Advanced_Parameters .
Ayrıca bakınız
PowerShell