Membuat dan melempar pengecualian baru

Jawaban:

194

Untuk memanggil pengecualian tertentu seperti FileNotFoundException gunakan format ini

if (-not (Test-Path $file)) 
{
    throw [System.IO.FileNotFoundException] "$file not found."
}

Untuk melempar pengecualian umum, gunakan perintah throw diikuti oleh string.

throw "Error trying to do a task"

Saat digunakan di dalam tangkapan, Anda dapat memberikan informasi tambahan tentang apa yang memicu kesalahan

WiiBopp
sumber
Dalam C ++, tidak disarankan untuk melempar string, karena mereka tidak berada dalam hierarki pengecualian. Itu hanya berfungsi, seperti di Powershell, tetapi mungkin mereka bukan cara terbaik untuk pergi?
Raúl Salinas-Monteagudo
3
Jika Anda menggunakan try..catches dalam skrip Anda dan Anda memiliki beberapa pernyataan tangkap yang memanggil pengecualian spesifik, tentu saja, Anda ingin menentukan jenis pengecualian. Saya tidak yakin mengapa referensi dibuat ke C ++. Dalam Powershell scripting, pernyataan melempar biasanya dimaksudkan untuk keluar dari skrip dengan pesan deskriptif. Saya tidak ingin memicu perdebatan, tetapi Powershell dan C ++ adalah hewan yang sangat berbeda. Menerapkan praktik terbaik C ++ atau C # ke Powershell harus diatasi, karena scripting lebih erat terkait dengan pemrograman fungsional.
WiiBopp