Kesalahan dan pengecualian dalam Sistem Tipe yang Diperluas

Kesalahan dapat terjadi di ETS selama inisialisasi data jenis dan saat mengakses anggota objek PSObject atau menggunakan salah satu kelas utilitas seperti LanguagePrimitives.

Kesalahan runtime

Dengan satu pengecualian, saat transmisi, semua pengecualian yang dilemparkan dari ETS selama runtime adalah pengecualian ExtendedTypeSystemException atau pengecualian yang berasal dari kelas ExtendedTypeSystemException. Ini memungkinkan pengembang skrip untuk menjebak pengecualian ini menggunakan pernyataan trap dalam skrip mereka.

Kesalahan saat mendapatkan nilai anggota

Semua kesalahan yang terjadi saat mendapatkan nilai anggota ETS (properti, metode, atau properti berparameter) menyebabkan pengecualian GetValueException atau GetValueInvocationException dilemparkan. Ketika ETS mengenali bahwa terjadi kesalahan pengecualian GetValueException dilemparkan. Ketika getter yang mendasar dari anggota yang direferensikan mengakui bahwa kesalahan terjadi, pengecualian GetValueInvocationException dilemparkan yang mungkin atau mungkin tidak menyertakan pengecualian dalam yang menyebabkan kesalahan pemanggilan.

Kesalahan pengaturan nilai anggota

Semua kesalahan yang terjadi saat mengatur nilai properti ETS menyebabkan SetValueException atau SetValueInvocationException pengecualian dilemparkan. Ketika ETS mengenali bahwa terjadi kesalahan pengecualian SetValueException dilemparkan. Ketika setter yang mendasar dari properti yang direferensikan mengenali bahwa kesalahan terjadi, pengecualian SetValueInvocationException dilemparkan yang mungkin atau mungkin tidak menyertakan pengecualian dalam yang menyebabkan kesalahan pemanggilan yang ditetapkan.

Kesalahan memanggil metode

Semua kesalahan yang terjadi saat memanggil metode ETS menyebabkan MethodException atau MethodInvocationException pengecualian dilemparkan. Ketika ETS mengenali bahwa kesalahan terjadi pengecualian MethodException dilemparkan. Ketika metode yang direferensikan mengenali bahwa terjadi kesalahan, pengecualian MethodInvocationException dilemparkan yang mungkin atau mungkin tidak menyertakan pengecualian dalam yang menyebabkan kesalahan pemanggilan.

Kesalahan transmisi

Ketika cast tidak valid dicoba, PSInvalidCastException dilemparkan. Karena pengecualian ini berasal dari System.InvalidCastException, pengecualian ini tidak dapat langsung terperangkap dari skrip. Ketahuilah bahwa entitas yang mencoba cast perlu membungkus PSInvalidCastException dalam PSRuntimeException agar ini dapat dijebak oleh skrip. Jika upaya dilakukan untuk menetapkan nilai PSPropertySet, PSMemberSet, PSMethodInfo, atau anggota ReadOnlyPSMemberInfoCollection'1, NotSupportedException dilemparkan.

Kesalahan runtime umum

Kesalahan runtime umum lainnya yang terjadi berjenis ExtendedTypeSystemException pengecualian tanpa jenis pengecualian khusus tambahan.

Kesalahan inisialisasi

Kesalahan dapat terjadi saat menginisialisasi types.ps1xml. Biasanya, kesalahan ini ditampilkan saat runtime PowerShell dimulai. Namun, modul juga dapat ditampilkan saat modul dimuat.