0

PowerShell で次の未終了エラーが発生します。エラーを表示するのではなく、これをキャッチして一般的なステートメントを書き込みホストにしたいのです。

出力は次のとおりです。

null 値の式でメソッドを呼び出すことはできません。C:\PowerShell Scripts\windowsUpdates.ps1:17 で char:2 + $a = $key.GetValue("LastSuccessTime") + ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) []、ParentContainsErrorRec ordException + FullyQualifiedErrorId : InvokeMethodOnNull

私のcatchステートメントは現在、これを「キャッチ」していません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

いくつかのオプションがあります

null変数をどこから取得しているかに応じて、追加できます

コマンドの後に -ErrorAction Stop" を追加して、非終了エラーを終了エラーとして処理します。

それがオプションでない場合は、エラーをスローして、catch ステートメントにエラーを強制的にキャッチさせることができます

if($variable -eq $null){Throw("変数は Null")}

または、すべてのエラーが終了エラーとして扱われるように作成して、catch ステートメントがスローされたものをすべてキャッチするようにすることもできます。

$ErrorActionPreference = "停止"

詳細については、次の MSDN ドキュメントを参照してください: http://blogs.msdn.com/b/kebab/archive/2013/06/09/an-introduction-to-error-handling-in-powershell.aspx

于 2013-12-03T16:45:51.970 に答える