Aracılığıyla paylaş


about_Throw

Kısa açıklama

Sonlandırıcı bir hata oluşturan throw anahtar sözcüğünü açıklar.

Uzun açıklama

throw anahtar sözcüğü sonlandırıcı bir hataya neden olur. komut, işlev veya betiğin işlenmesini durdurmak için throw anahtar sözcüğünü kullanabilirsiniz.

Ö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.

throw anahtar sözcüğü, kullanıcı ileti dizesi veya hataya neden olan nesne gibi herhangi bir nesne oluşturabilir.

Sözdizimi

throw anahtar sözcüğün söz dizimi aşağıdaki gibidir:

throw [<expression>]

throw söz dizimindeki ifade isteğe bağlıdır. throw deyimi, bir catch bloğunda 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 bloğunda kullanılıyorsa, geçerli RuntimeException'ı yeniden oluşturur. Daha fazla bilgi için bkz. about_Try_Catch_Finally.

Dize oluşturma

throw deyimindeki 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 fırlatan 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şkendeki ErrorRecord nesnesinin $Error özelliğini kullanabilirsiniz.

$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

throw ayrıca bir ErrorRecord nesnesini veya bir .NET özel durumunu yapabilirsiniz. Aşağıdaki örnekte, throw nesnesi oluşturmak için anahtar sözcüğü kullanılır.

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

Sonuçta oluşan hata

throw anahtar sözcüğü bir ErrorRecord nesnesi oluşturabilir. ErrorRecord nesnesinin İstisna özelliği, bir RuntimeException nesnesi içerir. ErrorRecord nesnesinin geri kalanı ve RuntimeException nesnesi, fırlatılan nesneye bağlı olarak değişir.

throw nesnesi ErrorRecord nesnesine sarmalanır ve ErrorRecord nesnesi otomatik olarak $Error otomatik değişkenine kaydedilir.

Zorunlu parametre oluşturmak için kullanma throw

PowerShell'in önceki sürümlerinden farklı olarak, parametre doğrulaması için throw anahtar sözcüğünü kullanmayın. Doğru yol için bkz. about_Functions_Advanced_Parameters.

Ayrıca bakınız