laravel 无法处理异常,catch 块未执行
laravel unable to handle exception, catch block not executing
我正在创建一个在远程服务器上执行各种操作的 SSH Bot。这些服务器的用户名和密码由用户提供。
但是当用户提供错误的用户名或密码或错误的服务器 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 块根本没有执行,脚本的执行停止了。
只需在 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();
}
我正在创建一个在远程服务器上执行各种操作的 SSH Bot。这些服务器的用户名和密码由用户提供。
但是当用户提供错误的用户名或密码或错误的服务器 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 块根本没有执行,脚本的执行停止了。
只需在 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();
}