2016-12-05 2 views
1

aufrufen Ich schreibe ein Skript, das functionB Aufruf functionA hat. Allerdings möchte ich functionA von functionB Griff auf Fehler von functionA und mit Hilfe der -erroraction Flag aufrufen, aber meine benutzerdefinierte Funktion kann nicht mit der erroraction FlaggeWie kann ich eine Funktion mit -erroaction

Beispiel genannt werden:

function functionA($var){ 
    #do something 
} 

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

wie kann ich so etwas wie diese Arbeit? Fehlerbehandlung von functionA ist keine Option.

+0

Es gibt eine globale '$ erroractionpreference', die Sie vor dem Aufruf der Funktion anhalten können. – 4c74356b41

Antwort

0

Verwenden Sie das Attribut [CmdletBinding()], um das zu aktivieren. Lesen Sie mehr about_Functions_CmdletBindingAttribute

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

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

Hinweis: In Powershell sollten Sie Ihre Funktionen benennen Sie die Verb-Nomen Konvention. Außerdem sollten Sie Ihre Parameter in einem Param() Block definieren. Curly Klammern geht normalerweise zu einer neuen Zeile. So könnten Ihre Funktionen wie folgt aussehen:

Verwandte Themen