Nhìn vào tập lệnh Get-WebFile trên PoshCode, http://posehcode.org/3226 , tôi nhận thấy điều này rất lạ với tôi:
$URL_Format_Error = [string]"..."
Write-Error $URL_Format_Error
return
Lý do cho điều này trái ngược với điều sau đây là gì?
$URL_Format_Error = [string]"..."
Throw $URL_Format_Error
Hoặc thậm chí tốt hơn:
$URL_Format_Error = New-Object System.FormatException "..."
Throw $URL_Format_Error
Theo tôi hiểu, bạn nên sử dụng Lỗi ghi cho các lỗi không kết thúc và Ném để chấm dứt các lỗi, do đó, có vẻ như tôi không nên sử dụng Lỗi ghi theo sau là Trả về. Có sự khác biệt?
return
không không trở lại cho người gọi trong process
khối chức năng (nâng cao); thay vào đó, nó tiến tới đối tượng đầu vào tiếp theo trong đường ống. Thật vậy, đây là kịch bản điển hình để tạo ra các lỗi không kết thúc: nếu vẫn có thể xử lý các đối tượng đầu vào tiếp theo.
Throw
tạo ra lỗi sắp hết tập lệnh , không giống với lỗi sắp hết câu lệnh được kích hoạt, ví dụ, bởi Get-Item -NoSuchParameter
hoặc 1 / 0
.