Delen via


Write-Error

Hiermee schrijft u een object naar de foutstroom.

Syntaxis

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

De Write-Error-cmdlet declareert een niet-afsluitfout. Standaard worden fouten in de foutstroom verzonden naar het hostprogramma dat moet worden weergegeven, samen met uitvoer.

Als u een niet-afsluitfout wilt schrijven, voert u een tekenreeks voor een foutbericht, een ErrorRecord-object of een Uitzonderings--object in. Gebruik de andere parameters van Write-Error om de foutrecord te vullen.

Niet-afsluitfouten schrijven een fout naar de foutstroom, maar stoppen de verwerking van opdrachten niet. Als een niet-afsluitfout wordt gedeclareerd voor één item in een verzameling invoeritems, blijft de opdracht de andere items in de verzameling verwerken.

Als u een afsluitfout wilt declareren, gebruikt u het trefwoord Throw. Zie about_Throwvoor meer informatie.

Voorbeelden

Voorbeeld 1: Een fout schrijven voor RegistryKey-object

Get-ChildItem | ForEach-Object {
    if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
    {
        Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
    }
    else
    {
        $_
    }
}

Met deze opdracht wordt een niet-afsluitfout declareren wanneer de Get-ChildItem cmdlet een Microsoft.Win32.RegistryKey-object retourneert, zoals de objecten in de HKLM: of HKCU: stations van de PowerShell-registerprovider.

Voorbeeld 2: Een foutbericht naar de console schrijven

Write-Error "Access denied."

Met deze opdracht wordt een niet-afsluitfout gede declareert en wordt de fout 'Toegang geweigerd' geschreven. Met de opdracht wordt de parameter Message gebruikt om het bericht op te geven, maar wordt de optionele parameternaam Message weggelaten.

Voorbeeld 3: Schrijf een fout naar de console en geef de categorie op

Write-Error -Message "Error: Too many input values." -Category InvalidArgument

Met deze opdracht wordt een niet-afsluitfout declareren en wordt een foutcategorie opgegeven.

Voorbeeld 4: Een fout schrijven met behulp van een uitzonderingsobject

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

Deze opdracht maakt gebruik van een Uitzondering object om een niet-afsluitfout te declareren.

De eerste opdracht maakt gebruik van een hash-tabel om het System.Exception--object te maken. Hiermee wordt het uitzonderingsobject opgeslagen in de $E variabele. U kunt een hash-tabel gebruiken om elk object van een type te maken dat een null-constructor heeft.

De tweede opdracht maakt gebruik van de Write-Error cmdlet om een niet-afsluitfout te declareren. De waarde van de parameter Exception is het object Exception in de variabele $E.

Parameters

-Category

Hiermee geeft u de categorie van de fout. De standaardwaarde is NotSpecified. De acceptabele waarden voor deze parameter zijn:

  • Niet opgegeven
  • OpenError
  • CloseError
  • DeviceError
  • DeadlockDetected
  • InvalidArgument
  • InvalidData
  • InvalidOperation
  • InvalidResult
  • InvalidType
  • MetadataError
  • Niet geïmplementeerd
  • Niet geïnstalleerd
  • ObjectNotFound
  • OperationStopped
  • OperationTimeout
  • SyntaxIsfout
  • ParserError
  • PermissionDenied
  • ResourceBusy
  • ResourceExists
  • ResourceUnavailable
  • ReadError
  • WriteError
  • FromStdErr
  • SecurityError
  • ProtocolError
  • ConnectionError
  • AuthenticationError
  • LimitsExceeded
  • QuotaExceeded
  • NotEnabled

Zie ErrorCategory Enumerationvoor meer informatie over de foutcategorieën.

Type:ErrorCategory
Geaccepteerde waarden: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-CategoryActivity

Hiermee geeft u de actie op die de fout heeft veroorzaakt.

Type:String
Aliassen:Activity
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-CategoryReason

Hiermee geeft u op hoe of waarom de activiteit de fout heeft veroorzaakt.

Type:String
Aliassen:Reason
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-CategoryTargetName

Hiermee geeft u de naam op van het object dat werd verwerkt toen de fout optrad.

Type:String
Aliassen:TargetName
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-CategoryTargetType

Hiermee geeft u het type van het object dat werd verwerkt toen de fout optrad.

Type:String
Aliassen:TargetType
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ErrorId

Hiermee geeft u een id-tekenreeks op om de fout te identificeren. De tekenreeks moet uniek zijn voor de fout.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ErrorRecord

Hiermee geeft u een foutrecordobject op dat de fout vertegenwoordigt. Gebruik de eigenschappen van het object om de fout te beschrijven.

Als u een foutrecordobject wilt maken, gebruikt u de cmdlet New-Object of haalt u een foutrecordobject op uit de matrix in de $Error automatische variabele.

Type:ErrorRecord
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Exception

Hiermee geeft u een uitzonderingsobject op dat de fout aangeeft. Gebruik de eigenschappen van het object om de fout te beschrijven.

Als u een uitzonderingsobject wilt maken, gebruikt u een hash-tabel of gebruikt u de cmdlet New-Object.

Type:Exception
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Message

Hiermee geeft u de berichttekst van de fout. Als de tekst spaties of speciale tekens bevat, plaatst u deze tussen aanhalingstekens. U kunt ook een berichttekenreeks doorsturen naar Write-Error.

Type:String
Aliassen:Msg
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-RecommendedAction

Hiermee geeft u de actie op die de gebruiker moet ondernemen om de fout op te lossen of te voorkomen.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-TargetObject

Hiermee geeft u het object op dat werd verwerkt toen de fout optrad. Voer het object, een variabele in die het object bevat of een opdracht waarmee het object wordt opgehaald.

Type:Object
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

String

U kunt een tekenreeks met een foutbericht doorsturen naar Write-Error.

Uitvoerwaarden

Error object

Write-Error schrijft alleen naar de foutstroom. Er worden geen objecten geretourneerd.

Notities

Write-Error wijzigt de waarde van de $? automatische variabele niet, daarom wordt er geen afsluitfoutvoorwaarde signalen weergegeven. Als u een afsluitfout wilt signaleren, gebruikt u de methode $PSCmdlet.WriteError().