Trong một tập lệnh, khi một lệnh cho phép hoặc các câu lệnh thực thi khác bị lỗi, có loại cơ chế try/catch nào để phục hồi từ các lỗi này không? Tôi đã không chạy trên một trong các tài liệu hướng dẫn.Windows Powershell có cơ chế xử lý lỗi/thử hoặc lỗi khác không?
Trả lời
Bạn sử dụng khối Trap [exception-type] {}
trước mã bạn muốn xử lý ngoại lệ.
+0 Câu trả lời thực tế giờ đây là thử/nắm bắt trong PowerShell phiên bản 2 trở lên như được ghi chú trong nhận xét về câu hỏi. I + 1d t @ Mark Ingram thay vì tôi coi đây là một bản dup mà không thêm nhiều. (Có, tôi biết điều này đã được một thời gian dài trước đây nhưng tôi đã bỏ lỡ nhận xét về câu hỏi lần đầu tiên và đây là lần bỏ phiếu cao nhất) –
Đây là một người (Adam Weigert) đã triển khai try/catch/cuối cùng bằng cách sử dụng PowerShell. Tôi sử dụng điều này thay cho việc xây dựng trong bẫy staement. Có vẻ tự nhiên hơn.
http://weblogs.asp.net/adweigert/archive/2007/10/10/powershell-try-catch-finally-comes-to-life.aspx
Tôi đã viết về điều này trong cột Tạp chí TechNet của tôi (technetmagazine.com, nếu bạn quan tâm).
Đầu tiên, PowerShell v2 sẽ có tiêu chuẩn Thử ... Bắt, thật tuyệt.
Vỏ hiện tại (v1) có hỗ trợ cho cấu trúc bẫy {}. Những điều này phải được xác định trước khi xảy ra ngoại lệ. Ngoài ra, hầu hết các lệnh ghép ngắn yêu cầu tham số "STOP" -EA để chúng tạo ra một ngoại lệ có thể tra cứu được. Bẫy có thể được định nghĩa trong bất kỳ phạm vi nào và sẽ "bong bóng" cho đến khi bị giữ lại hoặc cho đến khi chúng đạt đến phạm vi toàn cầu (vỏ).
Khi kết thúc bẫy, hãy thực hiện Tiếp tục để quay lại dòng mã tiếp theo trong cùng phạm vi với bẫy hoặc thực thi lệnh Break để thoát khỏi phạm vi hiện tại và gửi ngoại lệ lên.
+1 cho '-ErrorAction" STOP "' – mbx
- 1. Xử lý lỗi Tôi có nên ném ngoại lệ không? Hoặc xử lý tại nguồn?
- 2. Python, PowerShell hoặc Khác?
- 3. Xử lý ngắt trong Windows
- 4. Ngoại lệ chưa xử lý không bị xử lý lỗi Global.asax hoặc trình xử lý lỗi IHttpModule tùy chỉnh
- 5. Xử lý lỗi PHP
- 6. Cách xử lý lỗi đúng trong PowerShell là gì?
- 7. Chiến lược xử lý lỗi và xử lý lỗi
- 8. xử lý hạn chế cơ sở dữ liệu hibernate
- 9. chúng ta có đối tượng xếp hàng java hay cơ chế xử lý hàng loạt không?
- 10. Qt/C++ Xử lý lỗi
- 11. Powershell vấn đề xử lý thread
- 12. Xử lý lệnh Powershell (Chuyển các biến)
- 13. Xử lý lỗi ASP.NET
- 14. Làm cách nào để xử lý mở rộng biến Windows PATH khi được đặt từ PowerShell?
- 15. Tại sao ngoại lệ win32 không bị bắt bởi cơ chế xử lý ngoại lệ C#
- 16. Xử lý lỗi Asynctask
- 17. Lỗi xử lý trong Haskell với Hoặc đơn nguyên
- 18. Xử lý lỗi trong MVC
- 19. xử lý lỗi với .post()
- 20. perl "hoặc" xử lý lỗi: đa tuyên bố về lỗi có thể?
- 21. Xử lý lỗi MySQLi
- 22. Xử lý lỗi ActiveResource
- 23. xử lý lỗi malloc
- 24. Xử lý lỗi Socket.io
- 25. Xử lý lỗi STL mà không có ngoại lệ
- 26. windows xử lý bố trí bộ nhớ
- 27. Xử lý lỗi với Mongoose
- 28. Xử lý lỗi VBA không hoạt động trong Excel
- 29. Xử lý lỗi với Fabric
- 30. Ngăn chặn đa xử lý "lỗi chạy"
Lưu ý cho người đọc trong tương lai: PowerShell v2 hiện đã xuất hiện và hỗ trợ Try/Catch/Finally. – JasonMArcher