Write-Error
Hata akışına bir nesne yazar.
Syntax
Write-Error
[-Message] <String>
[-Category <ErrorCategory>]
[-ErrorId <String>]
[-TargetObject <Object>]
[-RecommendedAction <String>]
[-CategoryActivity <String>]
[-CategoryReason <String>]
[-CategoryTargetName <String>]
[-CategoryTargetType <String>]
[<CommonParameters>]
Write-Error
-Exception <Exception>
[[-Message] <String>]
[-Category <ErrorCategory>]
[-ErrorId <String>]
[-TargetObject <Object>]
[-RecommendedAction <String>]
[-CategoryActivity <String>]
[-CategoryReason <String>]
[-CategoryTargetName <String>]
[-CategoryTargetType <String>]
[<CommonParameters>]
Write-Error
-ErrorRecord <ErrorRecord>
[-RecommendedAction <String>]
[-CategoryActivity <String>]
[-CategoryReason <String>]
[-CategoryTargetName <String>]
[-CategoryTargetType <String>]
[<CommonParameters>]
Description
Write-Error
cmdlet'i sonlandırılmayan bir hata bildirir. Varsayılan olarak, hata akışındaki hatalar, çıkışla birlikte görüntülenecek konak programına gönderilir.
Sonlandırılmayan bir hata yazmak için hata iletisi dizesi, ErrorRecord nesnesi veya Özel Durum nesnesi girin. Hata kaydını doldurmak için diğer parametrelerini Write-Error
kullanın.
Sonlandırılmayan hatalar hata akışına bir hata yazar, ancak komut işlemeyi durdurmaz. Giriş öğeleri koleksiyonundaki bir öğede sonlandırılmayan bir hata bildirilirse, komut koleksiyondaki diğer öğeleri işlemeye devam eder.
Sonlandırıcı bir hata bildirmek için anahtar sözcüğünü Throw
kullanın.
Daha fazla bilgi için bkz. about_Throw.
Örnekler
Örnek 1: RegistryKey nesnesi için hata yazma
Get-ChildItem | ForEach-Object {
if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
{
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
}
else
{
$_
}
}
Bu komut, cmdlet PowerShell Kayıt Defteri sağlayıcısının Get-ChildItem
veya HKCU:
sürücülerindeki nesneler gibi bir nesne döndürdüğünde HKLM:
sonlandırıcı olmayan bir Microsoft.Win32.RegistryKey
hata bildirir.
Örnek 2: Konsola hata iletisi yazma
Write-Error "Access denied."
Bu komut sonlandırılmayan bir hata bildirir ve "Erişim reddedildi" hatası yazar. Komut, iletiyi belirtmek için message parametresini kullanır, ancak isteğe bağlı message parametresi adını atlar.
Örnek 3: Konsola bir hata yazın ve kategoriyi belirtin
Write-Error -Message "Error: Too many input values." -Category InvalidArgument
Bu komut sonlandırıcı olmayan bir hata bildirir ve bir hata kategorisi belirtir.
Örnek 4: Özel Durum nesnesi kullanarak hata yazma
$E = [System.Exception]@{Source="Get-ParameterNames.ps1";HelpLink="https://go.microsoft.com/fwlink/?LinkID=113425"}
Write-Error -Exception $E -Message "Files not found. The $Files location does not contain any XML files."
Bu komut, sonlandırılmayan bir hata bildirmek için bir Exception nesnesi kullanır.
İlk komut, System.Exception nesnesini oluşturmak için bir karma tablo kullanır. Özel durum nesnesini değişkene $E
kaydeder. Null oluşturucuya sahip bir türe ait herhangi bir nesneyi oluşturmak için karma tablo kullanabilirsiniz.
İkinci komut, sonlandırıcı olmayan bir hata bildirmek için cmdlet'ini kullanır Write-Error
. Exception parametresinin değeri değişkenindeki $E
Exception nesnesidir.
Parametreler
-Category
Hatanın kategorisini belirtir. Varsayılan değer NotSpecified değeridir. Bu parametrenin kabul edilebilir değerleri şunlardır:
- Notspecified
- OpenError
- CloseError
- DeviceError
- Kilitlenme Algılandı
- InvalidArgument
- InvalidData
- InvalidOperation
- InvalidResult
- InvalidType
- MetadataError
- NotImplemented
- NotInstalled
- ObjectNotFound
- OperationStopped
- OperationTimeout
- Söz DizimiHata
- Parsererror
- PermissionDenied
- ResourceBusy
- ResourceExists
- ResourceUnavailable
- ReadError
- WriteError
- FromStdErr
- SecurityError
- ProtocolError
- ConnectionError
- AuthenticationError
- LimitlerExceeded
- QuotaExceeded
- NotEnabled
Hata kategorileri hakkında bilgi için bkz . ErrorCategory Sabit Listesi.
Type: | ErrorCategory |
Accepted values: | NotSpecified, OpenError, CloseError, DeviceError, DeadlockDetected, InvalidArgument, InvalidData, InvalidOperation, InvalidResult, InvalidType, MetadataError, NotImplemented, NotInstalled, ObjectNotFound, OperationStopped, OperationTimeout, SyntaxError, ParserError, PermissionDenied, ResourceBusy, ResourceExists, ResourceUnavailable, ReadError, WriteError, FromStdErr, SecurityError, ProtocolError, ConnectionError, AuthenticationError, LimitsExceeded, QuotaExceeded, NotEnabled |
Position: | Named |
Default value: | NotSpecified |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CategoryActivity
Hataya neden olan eylemi belirtir.
Type: | String |
Aliases: | Activity |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CategoryReason
Etkinliğin hataya nasıl veya neden neden olduğunu belirtir.
Type: | String |
Aliases: | Reason |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CategoryTargetName
Hata oluştuğunda işlenen nesnenin adını belirtir.
Type: | String |
Aliases: | TargetName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CategoryTargetType
Hata oluştuğunda işlenen nesnenin türünü belirtir.
Type: | String |
Aliases: | TargetType |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ErrorId
Hatayı tanımlamak için bir kimlik dizesi belirtir. Dize hataya benzersiz olmalıdır.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ErrorRecord
Hatayı temsil eden bir hata kaydı nesnesi belirtir. Hatayı açıklamak için nesnesinin özelliklerini kullanın.
Hata kaydı nesnesi oluşturmak için cmdlet'ini New-Object
kullanın veya otomatik değişkendeki $Error
diziden bir hata kaydı nesnesi alın.
Type: | ErrorRecord |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exception
Hatayı temsil eden bir özel durum nesnesi belirtir. Hatayı açıklamak için nesnesinin özelliklerini kullanın.
Özel durum nesnesi oluşturmak için karma tablo veya cmdlet'ini New-Object
kullanın.
Type: | Exception |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Message
Hatanın ileti metnini belirtir. Metin boşluk veya özel karakterler içeriyorsa, metni tırnak içine alın. İleti dizesini öğesine Write-Error
de yöneltebilirsiniz.
Type: | String |
Aliases: | Msg |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-RecommendedAction
Kullanıcının hatayı çözmek veya önlemek için gerçekleştirmesi gereken eylemi belirtir.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetObject
Hata oluştuğunda işlenen nesneyi belirtir. nesnesini, nesnesini içeren bir değişkeni veya nesneyi alan komutu girin.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Hata iletisi içeren bir dizeyi öğesine aktarabilirsiniz Write-Error
.
Çıkışlar
Error object
Write-Error
yalnızca hata akışına yazar. Hiçbir nesne döndürmez.
Notlar
Write-Error
otomatik değişkenin $?
değerini değiştirmez, bu nedenle sonlandırıcı bir hata koşuluna işaret etmez. Sonlandırıcı bir hata sinyali vermek için $PSCmdlet.WriteError() yöntemini kullanın.