protected function exceptional(\Closure $func) { try { $result = $func(); } catch (QueueException $e) { throw $e; } catch (\Exception $e) { throw new QueueException($this->queue, $e->getMessage(), 0, $e); } return $result; }