Function 如何允许使用-erroraction调用函数
我正在编写一个脚本,它具有Function 如何允许使用-erroraction调用函数,function,powershell,error-handling,Function,Powershell,Error Handling,我正在编写一个脚本,它具有functionB调用function。但是,我希望通过调用functionA并使用-erroraction标志来处理functionA中的functionA错误,但是不能使用erroraction标志调用我的自定义函数 例如: function functionA($var){ #do something } function functionB($var1, $var2){ try{ $response = functionA $value
functionB
调用function
。但是,我希望通过调用functionA
并使用-erroraction
标志来处理functionA
中的functionA
错误,但是不能使用erroraction
标志调用我的自定义函数
例如:
function functionA($var){
#do something
}
function functionB($var1, $var2){
try{
$response = functionA $value -ErrorAction Stop
}catch{
#do something else
}
}
我怎样才能做这样的工作?
从
function
处理错误不是一个选项。使用[CmdletBinding()]
属性启用该选项。阅读更多
注意:在PowerShell中,您应该使用动词-名词约定来命名函数。您还应该在
Param()
块中定义参数。花括号通常指向新行。因此,您的函数可以如下所示:
function Test-FunctionA
{
[CmdletBinding()]
Param
(
$var
)
#do something
}
function Test-FunctionB
{
[CmdletBinding()]
Param
(
$var1,
$var2
)
try
{
$response = Test-FunctionA $value -ErrorAction Stop
}
catch
{
#do something else
}
}
使用
[CmdletBinding()]
属性启用该功能。阅读更多
注意:在PowerShell中,您应该使用动词-名词约定来命名函数。您还应该在
Param()
块中定义参数。花括号通常指向新行。因此,您的函数可以如下所示:
function Test-FunctionA
{
[CmdletBinding()]
Param
(
$var
)
#do something
}
function Test-FunctionB
{
[CmdletBinding()]
Param
(
$var1,
$var2
)
try
{
$response = Test-FunctionA $value -ErrorAction Stop
}
catch
{
#do something else
}
}
有一个全局
$erroractionpreference
,您可以在调用函数之前将其设置为stop,然后再将其还原。有一个全局$erroractionpreference
,您可以在调用函数之前将其设置为stop,然后再将其还原。