我想完全按照
handle()
方法处理我的监听器中的异常
/**
* Handle the event.
*
* @param DocumentGenerated $event
* @return void
*/
public function handle(DocumentGenerated $event)
{
$data = $event->data;
$this->generateDoc($data);
}
看了文档后发现监听器的handle()方法应该返回false来停止事件传播
我将 handle() 方法的返回类型从 void 更改为 boolean 并尝试返回 false 但它并没有停止事件传播。
可以通过捕获异常并返回false来处理异常。例子:
/**
* Handle the event.
*
* @param DocumentGenerated $event
* @return void
*/
public function handle(FirstPaymentScheduleCreated $event)
{
try {
$data = $event->data;
$this->generateDoc($data);
}catch (Exception $e) {
//Handle the exception
return false; //stop event propagation
}
return true // allow event propagation
}