Не корректно отрабатывает try\catch. Как исправить?
Так ты перехватил ошибку, но не выводишь ее.Просмотрел дебагером, исключение генерируется, попадает в блок catch и скрипт продолжает работать (хотя его работа должна прерываться). Не подскажите из-за чего такая штука может происходить?
У тебя еще есть код после try-catch, вот он и выполняется.
UPD. Примерно так должен выглядеть ваш метод<?php
    public function sending(string $event, EmailAddress $recipient, array $tpl = array()): void
    {
        try {
            $this->mailer->addAddress($recipient->email, $recipient->name);
            $this->mailer->Subject = $subject;
            $this->mailer->Body = $body;
            $this->mailer->isHTML(true);
            if (!$this->mailer->send()) {
                throw new EmailSendingFailed("Couldn't send email. Invalid sender address '{$recipient->email}'.");
            }
            return ['status' => 'success'];
            $this->mailer->ClearAddresses();
        } catch (Exception $e) {
            return ['status' => 'error', 'error_message' => $e->getMessage();];
        }
    }
Результат выполнения - массив со статусом, и если есть, с текстом ошибки.
Так ты перехватил ошибку, но не выводишь ее.Просмотрел дебагером, исключение генерируется, попадает в блок catch и скрипт продолжает работать (хотя его работа должна прерываться). Не подскажите из-за чего такая штука может происходить?
У тебя еще есть код после try-catch, вот он и выполняется.
UPD. Примерно так должен выглядеть ваш метод<?php
    public function sending(string $event, EmailAddress $recipient, array $tpl = array()): void
    {
        try {
            $this->mailer->addAddress($recipient->email, $recipient->name);
            $this->mailer->Subject = $subject;
            $this->mailer->Body = $body;
            $this->mailer->isHTML(true);
            if (!$this->mailer->send()) {
                throw new EmailSendingFailed("Couldn't send email. Invalid sender address '{$recipient->email}'.");
            }
            return ['status' => 'success'];
            $this->mailer->ClearAddresses();
        } catch (Exception $e) {
            return ['status' => 'error', 'error_message' => $e->getMessage();];
        }
    }
Результат выполнения - массив со статусом, и если есть, с текстом ошибки.