Write-Error
Menulis objek ke aliran kesalahan.
Sintaks
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>]
Deskripsi
Write-Error
Cmdlet mendeklarasikan kesalahan yang tidak mengakhiri. Secara default, kesalahan dikirim dalam aliran kesalahan ke program host yang akan ditampilkan, bersama dengan output.
Untuk menulis kesalahan yang tidak mengakhiri, masukkan string pesan kesalahan, objek ErrorRecord , atau objek Pengecualian . Gunakan parameter lain untuk Write-Error
mengisi catatan kesalahan.
Kesalahan yang tidak mengakhiri penulisan kesalahan ke aliran kesalahan, tetapi tidak menghentikan pemrosesan perintah. Jika kesalahan yang tidak mengakhiri dinyatakan pada satu item dalam kumpulan item input, perintah terus memproses item lain dalam koleksi.
Untuk menyatakan kesalahan penghentian, gunakan Throw
kata kunci.
Untuk informasi selengkapnya, lihat about_Throw.
Contoh
Contoh 1: Menulis kesalahan untuk objek RegistryKey
Get-ChildItem | ForEach-Object {
if ($_.GetType().ToString() -eq "Microsoft.Win32.RegistryKey")
{
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
}
else
{
$_
}
}
Perintah ini mendeklarasikan kesalahan yang tidak mengakhiri saat Get-ChildItem
cmdlet mengembalikan Microsoft.Win32.RegistryKey
objek, seperti objek di HKLM:
atau HKCU:
drive penyedia Registri PowerShell.
Contoh 2: Menulis pesan kesalahan ke konsol
Write-Error "Access denied."
Perintah ini menyatakan kesalahan yang tidak mengakhiri dan menulis kesalahan "Akses ditolak". Perintah menggunakan parameter Pesan untuk menentukan pesan, tetapi menghilangkan nama parameter Pesan opsional.
Contoh 3: Menulis kesalahan ke konsol dan menentukan kategori
Write-Error -Message "Error: Too many input values." -Category InvalidArgument
Perintah ini menyatakan kesalahan yang tidak mengakhiri dan menentukan kategori kesalahan.
Contoh 4: Menulis kesalahan menggunakan objek Pengecualian
$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."
Perintah ini menggunakan objek Pengecualian untuk mendeklarasikan kesalahan yang tidak mengakhiri.
Perintah pertama menggunakan tabel hash untuk membuat objek System.Exception . Ini menyimpan objek pengecualian dalam $E
variabel. Anda dapat menggunakan tabel hash untuk membuat objek jenis apa pun yang memiliki konstruktor null.
Perintah kedua menggunakan Write-Error
cmdlet untuk mendeklarasikan kesalahan yang tidak mengakhiri. Nilai parameter Pengecualian adalah objek Pengecualian dalam $E
variabel .
Parameter
-Category
Menentukan kategori kesalahan. Nilai defaultnya adalah NotSpecified. Nilai yang dapat diterima untuk parameter ini adalah:
- Tidak Ditentukan
- OpenError
- CloseError
- DeviceError
- DeadlockDetected
- InvalidArgument
- InvalidData
- InvalidOperation
- InvalidResult
- InvalidType
- MetadataError
- NotImplemented
- Tidak Terinstal
- ObjectNotFound
- OperationStopped
- OperationTimeout
- SintaksError
- ParserError
- Izin Dideni
- ResourceBusy
- ResourceExists
- ResourceUnavailable
- ReadError
- WriteError
- FromStdErr
- SecurityError
- ProtocolError
- Koneksi ionError
- AuthenticationError
- LimitsExceeded
- QuotaExceeded
- NotEnabled
Untuk informasi tentang kategori kesalahan, lihat Enumerasi ErrorCategory.
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
Menentukan tindakan yang menyebabkan kesalahan.
Type: | String |
Aliases: | Activity |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CategoryReason
Menentukan bagaimana atau mengapa aktivitas menyebabkan kesalahan.
Type: | String |
Aliases: | Reason |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CategoryTargetName
Menentukan nama objek yang sedang diproses ketika terjadi kesalahan.
Type: | String |
Aliases: | TargetName |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CategoryTargetType
Menentukan tipe objek yang sedang diproses ketika terjadi kesalahan.
Type: | String |
Aliases: | TargetType |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ErrorId
Menentukan string ID untuk mengidentifikasi kesalahan. String harus unik untuk kesalahan.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ErrorRecord
Menentukan objek rekaman kesalahan yang mewakili kesalahan. Gunakan properti objek untuk menjelaskan kesalahan.
Untuk membuat objek rekaman kesalahan, gunakan New-Object
cmdlet atau dapatkan objek rekaman kesalahan dari array dalam $Error
variabel otomatis.
Type: | ErrorRecord |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exception
Menentukan objek pengecualian yang mewakili kesalahan. Gunakan properti objek untuk menjelaskan kesalahan.
Untuk membuat objek pengecualian, gunakan tabel hash atau gunakan New-Object
cmdlet.
Type: | Exception |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Message
Menentukan teks pesan kesalahan. Jika teks menyertakan spasi atau karakter khusus, sertakan dalam tanda kutip. Anda juga dapat menyalurkan string pesan ke Write-Error
.
Type: | String |
Aliases: | Msg |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-RecommendedAction
Menentukan tindakan yang harus diambil pengguna untuk mengatasi atau mencegah kesalahan.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TargetObject
Menentukan objek yang sedang diproses ketika terjadi kesalahan. Masukkan objek, variabel yang berisi objek, atau perintah yang mendapatkan objek.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
Anda dapat menyalurkan string yang berisi pesan kesalahan ke cmdlet ini.
Output
None
Cmdlet ini tidak mengembalikan output. Ini hanya menulis ke aliran pesan kesalahan.
Catatan
Write-Error
tidak mengubah nilai $?
variabel otomatis, oleh karena itu tidak menandakan kondisi kesalahan yang mengakhiri. Untuk memberi sinyal kesalahan penghentian, gunakan metode $PSCmdlet.WriteError().
Link Terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk