错误处理方法调用空值表达式

时间:2013-11-13 17:23:23

标签: powershell error-handling try-catch

我在PowerShell中收到以下非终止错误。我想抓住这个并写一个泛型语句,而不是看错误。

这是输出:

  

您无法在空值表达式上调用方法。在C:\ PowerShell   Scripts \ windowsUpdates.ps1:17 char:2   + $ a = $ key.GetValue(“LastSuccessTime”)   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidOperation:(:) [],ParentContainsErrorRec ordException       + FullyQualifiedErrorId:InvokeMethodOnNull

我的捕获声明目前没有“抓住”这个。

感谢任何帮助。

2 个答案:

答案 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