所以我有这段代码在xml生成后将文件上传到目的地。检查服务器,我看到文件有正确的内容,但是从我的一个捕获块中,我得到了"发生了一个无法解决的错误。"我无法判断这是否是一个临界错误,因为我不知道错误是什么。文件至少上传了,但我想找出这个错误,这样我就可以解决它。有没有办法知道这里抛出了什么错误?
try {
$wc = New-Object System.Net.WebClient
$rawResponse = $wc.UploadFile("someURIhere", "Post", $File)
$resp = System.Text.Encoding.ASCII.GetString($rawResponse)
Write-Host $resp
}
catch [System.Net.WebException] {
$Request = $_.Exception
Write-host "Exception caught: $Request"
$crapMessage = ($_.Exception.Message).ToString().Trim()
Write-Output $crapMessage
}
catch {
Write-Host "An error occurred that could not be resolved."
}
因为你的第二个catch块被击中,你知道它是而不是和WebException
。
你的脚本应该产生一个错误,因为这无效的行:
$resp = System.Text.Encoding.ASCII.GetString($rawResponse)
你可能想写的是:
$resp = [System.Text.Encoding]::ASCII.GetString($rawResponse)
同样,如果你用这个代替,你是最安全的,以确保你使用正确的编码:
$resp = $wc.Encoding.GetString($rawResponse)