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
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().