Обработчик ошибок не перехватывает ошибки в PowerShell - PullRequest
1 голос
/ 08 апреля 2019

На моем предприятии по изучению PowerShell я столкнулся с другой проблемой, в которой я хотел бы получить вашу помощь по этому вопросу.

У меня есть код ниже внутри try-catch, но когда внутри происходит ошибкаtry блок, кажется, не отправляет его в catch блок.

Код:

try{
        if ($isFileAvailable -gt 0){
             $hashArgumentWithAttachment = @{
                From = $From
                To = $To
                Subject = $Subject
                Body = $Body
                SmtpServer = $SMTPServer
                Port = $SMTPPort
                UseSsl = $true
                Credential = $smtpCredential 
                Attachments = $filePath
            }

            Send-MailMessage @hashArgumentWithAttachment
        }
        Else {
            $hashArgumentWithOutAttachment = @{
                From = $From
                To = $To
                Subject = $Subject
                Body = $Body
                SmtpServer = $SMTPServer
                Port = $SMTPPort
                UseSsl = $true
                Credential = $smtpCredential 
            }

            Send-MailMessage @hashArgumentWithoutAttachment
        }
        Write-Output "Emailed"
        break
    }catch { 
        Write-Output "Error Occured, No of Attempts So far: " + $attempts.ToString()
    } 

В случае ошибки подключения к серверу, я ожидаю попадания вблок catch, но вместо этого он выдает ошибку вроде этого:

enter image description here

1 Ответ

1 голос
/ 09 апреля 2019

Добавить ErrrorAction к CMDLet:

Send-MailMessage @hashArgumentWithoutAttachment -ErrorAction Stop

Ура! * * 1004

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...