【发布时间】:2021-04-18 12:07:00
【问题描述】:
我在事件订阅者中使用 Symfony HTTP 客户端,并将超时设置为 0.1。问题是我希望代码在超过 0.1 秒的情况下跳过 HTTP 请求并且超时,同时不需要抛出错误/异常。我试过尝试捕捉,但它不起作用。
public function checkToken()
{
try {
$response = $this->client->request('POST','url/of/api', [
'json' => ['token' => $_ENV['USER_TOKEN']],
'timeout' => 0.1,
]);
}catch (\Exception $e){
}
}
为什么不能通过try and catch处理?
【问题讨论】:
-
您是否可以改用max_duration?
-
@Cerad 抛出异常,也无法通过 try 和 catch 处理
-
好的。这也许就是为什么“它不起作用”并不总是对问题的有用描述。所以它抛出了一个异常,但你的 try/catch 没有捕捉到它。也许 Laravel 以某种方式拦截了它?只是一个猜测。祝你好运。
标签: php symfony try-catch symfony5