laravel не может обработать исключение, блок catch не выполняется - PullRequest
0 голосов
/ 03 сентября 2018

Я нахожусь на пути к созданию бота SSH, который выполняет различные операции на удаленных серверах. Имя пользователя и пароли для этих серверов предоставляются пользователем.

Но когда пользователь вводит неправильное имя пользователя или пароль или неверный IP-адрес сервера, он выдает ErrorException исключение.

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

вот мой код

try {
                $pending_server->console_output = $this->setupDNS($pending_server->toArray());
                $pending_server->status = 'Configured';
            } catch (ErrorException $e) {
                $pending_server->console_output = $e->getMessage;
                $pending_server->status = 'Failed';
                $pending_server->save();
            }

В базе данных $pending_server - модель базы данных. Метод setupDNS вызывает исключение. Поэтому в случае исключения я хочу сохранить сообщение об ошибке как вывод в базе данных. Но блок catch не выполняется вообще, и выполнение сценария останавливается.

1 Ответ

0 голосов
/ 15 сентября 2018

просто поставьте '\' перед ErrorException. Например:

try {
                $pending_server->console_output = $this->setupDNS($pending_server->toArray());
                $pending_server->status = 'Configured';
            } catch (\ErrorException $e) {
                $pending_server->console_output = $e->getMessage;
                $pending_server->status = 'Failed';
                $pending_server->save();
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...