Tạo và ném ngoại lệ mới


130

Làm cách nào tôi có thể tạo và ném một ngoại lệ mới trong PowerShell?

Tôi muốn làm những điều khác nhau cho một lỗi cụ thể.


2
Bạn đang tìm cách để ném một ngoại lệ tùy chỉnh? [Điều này] [1] có giúp được không? [1]: stackoverflow.com/questions/11703180/ Cách
bala_88

1
Hãy xem bài đăng này: stackoverflow.com/questions/2182666/
Kẻ

Câu trả lời:


194

Để gọi một ngoại lệ cụ thể như FileNotFoundException, hãy sử dụng định dạng này

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

Để ném một ngoại lệ chung, sử dụng lệnh throw theo sau là một chuỗi.

throw "Error trying to do a task"

Khi được sử dụng bên trong một bẫy, bạn có thể cung cấp thêm thông tin về những gì đã gây ra lỗi


Trong C ++, không khuyến khích ném các chuỗi, vì chúng không nằm trong hệ thống phân cấp ngoại lệ. Nó chỉ hoạt động, như trong Powershell, nhưng có lẽ chúng không phải là cách tốt nhất để đi?
Raúl Salinas-Monteagudo

3
Nếu bạn đang sử dụng try..catches trong tập lệnh của mình và bạn có nhiều câu lệnh bắt gọi các ngoại lệ cụ thể thì dĩ nhiên, bạn sẽ muốn chỉ định loại ngoại lệ. Tôi không chắc tại sao một tài liệu tham khảo được tạo ra cho C ++. Trong kịch bản Powershell, một câu lệnh ném thường được dùng để thoát khỏi tập lệnh với một thông điệp mô tả. Tôi không muốn gây ra một cuộc tranh luận, nhưng Powershell và C ++ là những động vật cực kỳ khác nhau. Áp dụng các thực tiễn tốt nhất của C ++ hoặc C # cho Powershell, vì kịch bản có liên quan chặt chẽ hơn với lập trình chức năng.
WiiBopp
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.