about_Throw

Kısa açıklama

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

Uzun açıklama

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

Örneğin, bir koşula veya deyimin bloğuna yanıt vermek için deyiminin catch betik bloğunda anahtar sözcüğünü--finallytrycatchkullanabilirsiniz.ifthrow

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 nesnesinin $Error TargetObject ö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

Ayrıca ErrorRecord nesnesi veya .NET özel durumu da throw oluşturabilirsiniz. Aşağıdaki örnek, System.FormatException nesnesi oluşturmak için anahtar sözcüğünü kullanırthrow.

$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 bkz.