我在PowerShell中收到以下非终止错误。我想抓住这个并写一个泛型语句,而不是看错误。
这是输出:
您无法在空值表达式上调用方法。在C:\ PowerShell Scripts \ windowsUpdates.ps1:17 char:2 + $ a = $ key.GetValue(“LastSuccessTime”) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [],ParentContainsErrorRec ordException + FullyQualifiedErrorId:InvokeMethodOnNull
我的捕获声明目前没有“抓住”这个。
感谢任何帮助。
答案 0 :(得分:0)
我想出来了。我只是添加了if($variable -eq $null){write-host "message";}
。
答案 1 :(得分:0)
有几个选项
根据您从中获取null变量的位置,您可以添加
-ErrorAction Stop“ 在命令之后,它将非终止错误视为终止错误。
如果这不是一个选项,你可能会抛出一个错误来强制你的catch语句捕获错误
if($ variable -eq $ null){Throw(“Variable is Null”)}
或者您可以将所有错误视为终止错误,以便您的catch语句捕获任何抛出的内容
$ ErrorActionPreference =“停止”
有关详细信息,请参阅此处的MSDN文档:http://blogs.msdn.com/b/kebab/archive/2013/06/09/an-introduction-to-error-handling-in-powershell.aspx