6

以下のスクリプトの2行目は-を生成します

「値「System.Object[]」をタイプ「System.Xml.XmlDocument」に変換できません。エラー:「'→'、16進値0x1A、は無効な文字です。39行目、23桁目。」

行:1文字:8 + [xml] $ x <<<< = Get-Content 4517.xml + CategoryInfo:MetadataError:(:) []、ArgumentTransformationMetadataException + FullyQualifiedErrorId:RuntimeException "

前述のエラーをキャッチするには、(スクリプトの)4行目にどのような例外を指定する必要がありますか?

try {
    [xml]$xml = Get-Content $file # line 2
}
catch [?] {                       # line 4
    echo "XML parse error!"
    # handle the parse error differently
}
catch {
    echo $error
    # some general error
}

見てくれてありがとう(そして答えてくれて)

エイドリアン

4

2 に答える 2

5

これは、例外の完全な型名を自分で発見する方法です。ここでの結果は、@AdrianWrightによって与えられたSystem.Management.Automation.ArgumentTransformationMetadataExceptionを示します。

Clear-Host
try {
    [xml]$xml = Get-Content "c:\Temp\1.cs" # line 2
}
catch {
    # Discovering the full type name of an exception
    Write-Host $_.Exception.gettype().fullName
    Write-Host $_.Exception.message
}
于 2012-05-03T04:03:00.083 に答える
3

System.Management.Automation.ArgumentTransformationMetadataException

于 2012-05-01T19:49:46.563 に答える