Bagikan melalui


Write-Error

Menulis objek ke aliran kesalahan.

Sintaks

NoException (Default)

Write-Error
    [-Message] <string>
    [-Category <ErrorCategory>]
    [-ErrorId <string>]
    [-TargetObject <Object>]
    [-RecommendedAction <string>]
    [-CategoryActivity <string>]
    [-CategoryReason <string>]
    [-CategoryTargetName <string>]
    [-CategoryTargetType <string>]
    [<CommonParameters>]

WithException

Write-Error
    [-Exception] <Exception>
    [-Message <string>]
    [-Category <ErrorCategory>]
    [-ErrorId <string>]
    [-TargetObject <Object>]
    [-RecommendedAction <string>]
    [-CategoryActivity <string>]
    [-CategoryReason <string>]
    [-CategoryTargetName <string>]
    [-CategoryTargetType <string>]
    [<CommonParameters>]

ErrorRecord

Write-Error
    [-ErrorRecord] <ErrorRecord>
    [-RecommendedAction <string>]
    [-CategoryActivity <string>]
    [-CategoryReason <string>]
    [-CategoryTargetName <string>]
    [-CategoryTargetType <string>]
    [<CommonParameters>]

Deskripsi

Cmdlet Write-Error 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 menghentikan, masukkan string pesan kesalahan, objek ErrorRecord, atau objek Exception. Gunakan parameter lain dari Write-Error untuk mengisi catatan kesalahan.

Kesalahan yang tidak menghentikan akan menulis kesalahan ke dalam 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 fatal, gunakan kata kunci throw. Untuk informasi lebih lanjut, 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 menyatakan kesalahan yang tidak menghentikan proses saat cmdlet Get-ChildItem mengembalikan objek Microsoft.Win32.RegistryKey, seperti objek di drive HKLM: atau HKCU: penyedia registri PowerShell.

Contoh 2: Menulis pesan kesalahan ke konsol

Write-Error "Access denied."

Perintah ini menyatakan kesalahan yang tidak menghentikan proses dan mencatat 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 menyebabkan penghentian 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 menghentikan proses.

Perintah pertama menggunakan tabel hash untuk membuat objek System.Exception . Ini menyimpan objek pengecualian dalam variabel $E. Anda dapat menggunakan tabel hash untuk membuat objek jenis apa pun yang memiliki konstruktor null.

Perintah kedua menggunakan cmdlet Write-Error untuk mendeklarasikan kesalahan non-terminasi. Nilai parameter Pengecualian adalah objek Pengecualian dalam variabel $E.

Parameter

-Category

Menentukan kategori kesalahan. Nilai defaultnya adalah NotSpecified. Nilai yang dapat diterima untuk parameter ini adalah:

  • Tidak Ditentukan
  • OpenError
  • CloseError
  • Kesalahan Perangkat
  • DeadlockDetected
  • ArgumenTidakValid
  • Data Tidak Valid
  • Operasi Tidak Valid
  • HasilTidakValid
  • Jenis Tidak Valid
  • MetadataError
  • Belum Diimplementasikan
  • Tidak Terinstal
  • ObjekTidakDitemukan
  • OperasiDihentikan
  • OperationTimeout
  • Kesalahan Sintaks
  • ParserError
  • Izin Ditolak
  • ResourceBusy
  • ResourceExists
  • Sumber Tidak Tersedia
  • ReadError
  • WriteError
  • FromStdErr
  • Kesalahan Keamanan
  • ProtocolError
  • ConnectionError
  • AuthenticationError
  • Batas Terlampaui
  • Kuota Terlampaui
  • Tidak Diaktifkan

Untuk informasi tentang kategori kesalahan, lihat enumerasi kategori kesalahan.

Properti parameter

Jenis:ErrorCategory
Nilai default:NotSpecified
Nilai yang diterima: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
Mendukung wildcard:False
DontShow:False

Set parameter

NoException
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
WithException
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-CategoryActivity

Menentukan tindakan yang menyebabkan kesalahan.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Aktivitas

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-CategoryReason

Menentukan bagaimana atau mengapa aktivitas menyebabkan kesalahan.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Alasan

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-CategoryTargetName

Menentukan nama objek yang sedang diproses ketika terjadi kesalahan.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:NamaTarget

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-CategoryTargetType

Menentukan tipe objek yang sedang diproses ketika terjadi kesalahan.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Jenis Target

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-ErrorId

Menentukan string ID untuk mengidentifikasi kesalahan. String harus unik untuk kesalahan.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

NoException
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
WithException
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-ErrorRecord

Menentukan objek rekaman kesalahan yang mewakili kesalahan. Gunakan properti objek untuk menjelaskan kesalahan.

Untuk membuat objek rekaman kesalahan, gunakan cmdlet New-Object atau dapatkan objek rekaman kesalahan dari array dalam variabel otomatis $Error.

Properti parameter

Jenis:ErrorRecord
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

ErrorRecord
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-Exception

Menentukan objek pengecualian yang mewakili kesalahan. Gunakan properti objek untuk menjelaskan kesalahan.

Untuk membuat objek pengecualian, gunakan tabel hash atau gunakan cmdlet New-Object.

Properti parameter

Jenis:Exception
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

WithException
Position:0
Wajib:True
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa: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.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False
Alias:Msg

Set parameter

NoException
Position:0
Wajib:True
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
WithException
Position:0
Wajib:False
Nilai dari alur:True
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-RecommendedAction

Menentukan tindakan yang harus diambil pengguna untuk mengatasi atau mencegah kesalahan.

Properti parameter

Jenis:String
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

(All)
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

-TargetObject

Menentukan objek yang sedang diproses ketika terjadi kesalahan. Masukkan objek, variabel yang berisi objek, atau perintah yang mendapatkan objek.

Properti parameter

Jenis:Object
Nilai default:None
Mendukung wildcard:False
DontShow:False

Set parameter

NoException
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False
WithException
Position:Named
Wajib:False
Nilai dari alur:False
Nilai dari alur berdasarkan nama properti:False
Nilai dari argumen yang tersisa:False

CommonParameters

Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.

Input

String

Anda dapat menyalurkan string yang berisi pesan kesalahan ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output. Ini hanya menulis ke dalam aliran pesan kesalahan.

Catatan

Write-Error tidak mengubah nilai variabel otomatis $?, oleh karena itu tidak memberi sinyal kondisi kesalahan yang mengakhiri. Untuk memberi sinyal kesalahan penghentian, gunakan metode $PSCmdlet.WriteError().