我正在尝试捕获作业中的异常,但是try / catch组件似乎没有作用。
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$progress=0;
$step=100/count($this->itemsId);
event(new JobProgressUpdate($progress, '', true, $this->broadcastChannel));
foreach ($this->itemsId as $itemId) {
$message='ITEM '.$itemId.': ';
$success=true;
try{
$this->meliCredential->setItemStatus($itemId,$this->status);
}catch(\Exception $e){
$message+=$e->getMessage();
$success=false;
}
$progress+=$step;
event(new JobProgressUpdate($progress, $message, $success, $this->broadcastChannel));
}
}
该想法是避免将作业标记为失败,而只是将异常消息发送给客户端。
所以问题是,如何在作业处理程序中捕获异常?
我不想停止执行,这就是为什么我需要捕获异常。
答案 0 :(得分:0)
那只是愚蠢的问题。
问题最初是Exception类的名称空间问题(最初我没有使用“ \”)。
之后,作业因行$message+=$e->getMessage();
而崩溃
替换为$message=$message.$e->getMessage();
,现在可以正常使用了。