2016-12-05 36 views
1

我正在編寫一個腳本,其中functionB調用functionA。不過,我想通過調用functionA和使用-erroraction標誌錯誤處理來自functionBfunctionA,但我的自定義功能不能與erroraction標誌被稱爲如何允許使用-erroraction調用函數

例子:

function functionA($var){ 
    #do something 
} 

function functionB($var1, $var2){ 
    try{ 
    $response = functionA $value -ErrorAction Stop 
    }catch{ 
     #do something else 
    } 
} 

我怎麼能做出像這項工作? 來自functionA的錯誤處理不是一個選項。

+0

有一個全局'$ erroractionpreference',你可以將它設置爲停止,然後調用函數並在之後恢復它。 – 4c74356b41

回答

0

使用[CmdletBinding()]屬性啓用該屬性。更多about_Functions_CmdletBindingAttribute

function functionA 
{ 
    [CmdletBinding()] 
    Param 
    (
     $var 
    ) 
    #do something 
} 

function functionB($var1, $var2){ 
    try{ 
    $response = functionA $value -ErrorAction 
    }catch{ 
     #do something else 
    } 
} 

注:在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 
    } 
} 
相關問題