我有以下PS命令,如下所示:
if(get-customcmdlet) {
$var = var1
} else {
$var = var2
}
这里get-customcmdlet
引发异常。
因此,我对上述声明进行了如下修改:
try {
get-customcmdlet
$var = var1
}
catch {
$var = var2
}
请告诉我处理从exception
生成的get-customcmdlet
的正确方法
答案 0 :(得分:2)
您必须了解try-catch
与以前的if-else
有所不同。
Try-Catch
检查是否抛出执行,而if(get-customcmdlet)
检查函数是否返回不相等的$false
或$null
。
鉴于即使在某一点发生异常,您的函数也可以提供某些东西,您可以像这样将两者组合在一起:
try {
if(get-customcmdlet) {
$var = var1
}
else {
$var = var2
}
}
catch {
$var = var2
}
当函数返回异常且不返回任何值或$var
时,var2
等于$false
。