powershell 2.0 thử bắt cách truy cập ngoại lệ


127

Đây là try catchtrong PowerShell 2.0

$urls = "http://www.google.com", "http://none.greenjump.nl", "http://www.nu.nl"
$wc = New-Object System.Net.WebClient 

foreach($url in $urls)
{
    try
    {
        $url
        $result=$wc.DownloadString($url)
    }
    catch [System.Net.WebException]
    {
        [void]$fails.Add("url webfailed $url")
    }  
}

nhưng những gì tôi muốn làm là một cái gì đó như trong c #

catch( WebException ex)
{
    Log(ex.ToString());
}

Điều này có thể không?

Câu trả lời:


183

Hãy thử một cái gì đó như thế này:

try {
    $w = New-Object net.WebClient
    $d = $w.downloadString('http://foo')
}
catch [Net.WebException] {
    Write-Host $_.Exception.ToString()
}

Ngoại lệ là trong $_biến. Bạn có thể khám phá $_như thế này:

try {
    $w = New-Object net.WebClient
    $d = $w.downloadString('http://foo')
}
catch [Net.WebException] {
    $_ | fl * -Force
}

Tôi nghĩ rằng nó sẽ cung cấp cho bạn tất cả các thông tin bạn cần.

Quy tắc của tôi: nếu có một số dữ liệu không được hiển thị, hãy thử sử dụng-force .

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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.