Yeni istisna oluşturma ve atma


Yanıtlar:


194

FileNotFoundException gibi belirli bir özel durumu çağırmak için bu biçimi kullanın

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

Genel bir istisna atmak için, throw komutunu ve ardından bir dizeyi kullanın.

throw "Error trying to do a task"

Bir yakalama içinde kullanıldığında, hatayı neyin tetiklediği hakkında ek bilgi sağlayabilirsiniz.


C ++ 'da, istisna hiyerarşisinde olmadıkları için dizelerin atılması önerilmez. Powershell'de olduğu gibi işe yarıyor, ama belki de gitmenin en iyi yolu değiller?
Raúl Salinas-Monteagudo

3
Betiğinizde try..catches kullanıyorsanız ve belirli istisnaları çağıran birden çok catch deyiminiz varsa, tabii ki, istisna türünü belirtmek istersiniz. C ++ 'ya neden referans yapıldığından emin değilim. Powershell komut dosyasında, bir throw ifadesi genellikle betikten açıklayıcı bir mesajla çıkmaya yöneliktir. Bir tartışma başlatmak istemiyorum, ancak Powershell ve C ++ son derece farklı hayvanlar. Komut dosyası, işlevsel programlama ile daha yakından ilişkili olduğundan, Powershell'e C ++ veya C # en iyi uygulamalarının uygulanması temperlenmelidir.
WiiBopp
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.