Write-Error
Zapíše objekt do datového proudu chyby.
Syntaxe
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
Rutina Write-Error
deklaruje neukončující chybu. Ve výchozím nastavení se chyby odesílají ve streamu chyb do hostitelského programu, který se má zobrazit, spolu s výstupem.
Pokud chcete napsat neukončující chybu, zadejte řetězec chybové zprávy, objekt ErrorRecord nebo objekt Exception . K naplnění záznamu Write-Error
chyby použijte další parametry.
Neukončující chyby zapisují chybu do datového proudu chyb, ale nezastavují zpracování příkazů. Pokud je u jedné položky v kolekci vstupních položek deklarována neukončující chyba, příkaz bude i nadále zpracovávat ostatní položky v kolekci.
Chcete-li deklarovat ukončující chybu, použijte Throw
klíčové slovo.
Další informace najdete v tématu about_Throw.
Příklady
Příklad 1: Zápis chyby pro objekt RegistryKey
Get-ChildItem | ForEach-Object {
if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
{
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
}
else
{
$_
}
}
Tento příkaz deklaruje neukončující chybu, když Get-ChildItem
rutina vrátí Microsoft.Win32.RegistryKey
objekt, například objekty ve HKLM:
zprostředkovateli registru PowerShellu nebo HKCU:
jednotky.
Příklad 2: Napsání chybové zprávy do konzoly
Write-Error "Access denied."
Tento příkaz deklaruje neukončující chybu a zapíše chybu "Přístup odepřen". Příkaz používá k zadání zprávy parametr Message , ale vynechá volitelný název parametru Message .
Příklad 3: Zapište do konzoly chybu a zadejte kategorii.
Write-Error -Message "Error: Too many input values." -Category InvalidArgument
Tento příkaz deklaruje neukončující chybu a určuje kategorii chyb.
Příklad 4: Zápis chyby pomocí objektu výjimky
$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 doesn't contain any XML files."
Tento příkaz používá objekt výjimky k deklaraci neukončující chyby.
První příkaz používá k vytvoření objektu System.Exception tabulku hash. Uloží objekt výjimky do $E
proměnné. K vytvoření libovolného objektu typu, který má konstruktor null, můžete použít tabulku hash.
Druhý příkaz pomocí rutiny Write-Error
deklaruje neukončující chybu. Hodnota parametru Exception je objekt Exception v $E
proměnné.
Parametry
-Category
Určuje kategorii chyby. Výchozí hodnota není zadána. Tento parametr přijímá tyto hodnoty:
- Nezadá se
- OpenError
- CloseError
- Chyba zařízení
- DeadlockDetected
- InvalidArgument
- InvalidData
- InvalidOperation
- InvalidResult
- InvalidType
- Chyba metadat
- NotImplemented
- Nenainstalováno
- ObjectNotFound
- OperaceStopped
- OperationTimeout
- SyntaxError
- ParserError
- PermissionDenied
- ResourceBusy
- ResourceExists
- ResourceUnavailable
- ReadError
- Chyba zápisu
- Pochází zStdErr
- Chyba zabezpečení
- Chyba protokolu
- Chyba připojení
- Chyba ověřování
- LimitsExceeded
- QuotaExceeded
- NotEnabled
Informace o kategoriích chyb naleznete v tématu Výčtu ErrorCategory.
Typ: | ErrorCategory |
Přípustné hodnoty: | 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 |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CategoryActivity
Určuje akci, která způsobila chybu.
Typ: | String |
Aliasy: | Activity |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CategoryReason
Určuje, jak nebo proč aktivita způsobila chybu.
Typ: | String |
Aliasy: | Reason |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CategoryTargetName
Určuje název objektu, který byl zpracován při výskytu chyby.
Typ: | String |
Aliasy: | TargetName |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CategoryTargetType
Určuje typ objektu, který byl zpracován při výskytu chyby.
Typ: | String |
Aliasy: | TargetType |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ErrorId
Určuje řetězec ID pro identifikaci chyby. Řetězec by měl být jedinečný pro chybu.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ErrorRecord
Určuje objekt záznamu chyby, který představuje chybu. K popisu chyby použijte vlastnosti objektu.
Pokud chcete vytvořit objekt záznamu chyby, použijte rutinu New-Object
nebo získejte objekt záznamu chyby z pole v $Error
automatické proměnné.
Typ: | ErrorRecord |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Exception
Určuje objekt výjimky, který představuje chybu. K popisu chyby použijte vlastnosti objektu.
K vytvoření objektu výjimky použijte tabulku hash nebo použijte rutinu New-Object
.
Typ: | Exception |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Message
Určuje text zprávy chyby. Pokud text obsahuje mezery nebo speciální znaky, uzavřete ho do uvozovek. Řetězec zprávy můžete také převést na Write-Error
.
Typ: | String |
Aliasy: | Msg |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-RecommendedAction
Určuje akci, kterou má uživatel provést, aby chybu vyřešil nebo zabránil.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-TargetObject
Určuje objekt, který byl zpracován při výskytu chyby. Zadejte objekt, proměnnou obsahující objekt nebo příkaz, který objekt získá.
Typ: | Object |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Řetězec, který obsahuje chybovou zprávu pro tuto rutinu, můžete zamísťovat.
Výstupy
None
Tato rutina nevrátí žádný výstup. Zapisuje se pouze do datového proudu chybové zprávy.
Poznámky
Write-Error
nemění hodnotu $?
automatické proměnné, proto nezpůsobí ukončující chybovou podmínku. Chcete-li signalizovat ukončující chybu, použijte metodu $PSCmdlet.WriteError().