在 PS 内将 if-else 转换为 try-catch
Converting if-else to try-catch within PS
我有以下 PS 命令,如下所示:
if(get-customcmdlet) {
$var = var1
} else {
$var = var2
}
此处get-customcmdlet
抛出异常。
所以,我将上面的语句修改如下:
try {
get-customcmdlet
$var = var1
}
catch {
$var = var2
}
请告诉我处理从 get-customcmdlet
生成的 exception
的方法是否正确
您必须了解 try-catch
与您之前的 if-else
有所不同。
Try-Catch
检查是否抛出异常,而 if(get-customcmdlet)
检查您的函数 returns 是否不等于 $false
或 $null
.
鉴于即使在某一点发生异常时您的函数也会提供一些东西,您可以像这样将两者组合在一起:
try {
if(get-customcmdlet) {
$var = var1
}
else {
$var = var2
}
}
catch {
$var = var2
}
这样 $var
等于 var2
当函数 returns 异常并且当它 returns 什么都没有或 $false
.
我有以下 PS 命令,如下所示:
if(get-customcmdlet) {
$var = var1
} else {
$var = var2
}
此处get-customcmdlet
抛出异常。
所以,我将上面的语句修改如下:
try {
get-customcmdlet
$var = var1
}
catch {
$var = var2
}
请告诉我处理从 get-customcmdlet
exception
的方法是否正确
您必须了解 try-catch
与您之前的 if-else
有所不同。
Try-Catch
检查是否抛出异常,而 if(get-customcmdlet)
检查您的函数 returns 是否不等于 $false
或 $null
.
鉴于即使在某一点发生异常时您的函数也会提供一些东西,您可以像这样将两者组合在一起:
try {
if(get-customcmdlet) {
$var = var1
}
else {
$var = var2
}
}
catch {
$var = var2
}
这样 $var
等于 var2
当函数 returns 异常并且当它 returns 什么都没有或 $false
.