Aracılığıyla paylaş


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 $EException 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-Errorde 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

String

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.