2013-09-10 4 views
0

Мне было интересно, могу ли я помещать сообщения об ошибках в переменные в функции и записывать их в файл журнала. Вот где я довольно застрял.Ловушка Сообщение об ошибке в функции

function ErrorMessage([]$errormessage){ 
    echo $errormessage >> logfile.txt; 
    exit; 
} 

Вот что я сделал до сих пор:

function ErrorMessage{ 
    Catch 
    { 
     $_ >> logfile.txt 
     Exit 
    } 
} 

import-module 'MDTDB Script' 
connect-mdtdatabase -sqlserver 'Server name' -instance 'instance' -database 'Database 
$computersSQL = get-mdtcomputer 

ErrorMessage 

Например, если сервер недоступен, что бы написать сообщение об ошибке в лог-файл.

ответ

0

Вы должны помечать сообщения об ошибках в инструкции catch. Вот пример:

Try 
{ 
    This-Will-Throw-An-Error 
} 
Catch 
{ 
    $_ >> logfile.txt 
    Exit 
} 
+2

это будет только ловушкой прерывающих ошибок, если вы не измените '$ ErrorActionPreference' к«СТОП»... –

+0

Вы не предоставили подробную информацию относительно того, что вы пытаетесь достичь, но Я думаю, это может вам помочь. После запуска команды, которая, как вы подозреваете, вызовет ошибку, вы можете проверить $? переменную, чтобы увидеть, успешно ли выполнена команда, если это не так, вы можете взять последнюю ошибку из встроенной переменной $ Error и записать ее. Надеюсь, что поможет –

+0

@ MusaabAl-Okaidi Технически я ищу небольшую функцию, которая записывает ошибки в файл журнала (ожидаемая ошибка будет «Сервер недоступен»), так что мне не нужно писать весь скрипт после каждое соединение, но только имя функции – Matt

Смежные вопросы