2016-12-05 2 views
1

functionBfunctionAを呼び出すスクリプトを作成しています。しかし、私はfunctionAを呼び出し、-erroractionフラグを使用してfunctionBからfunctionAを扱うエラーしたいが、私のカスタム関数は-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 
    } 
} 
関連する問題