code: public function handle(Exception $exception)
  	{
  		if ($this->rethrow) throw $exception;
  
  		foreach ($this->handlers as $index => $handler) {
  			try {
  				if (is_string($handler)) {
  					$handler = $this->resolver->resolve($handler);
  					$this->handlers->offsetSet($index, $handler);
  				} else if (is_array($handler) && is_string($handler[0])) {
  					$handler[0] = $this->resolver->resolve($handler[0]);
  					$this->handlers->offsetSet($index, $handler);
  				}
  
  				if (!$this->matchesTypehint($handler, $exception)) {
  					continue;
  				}
  
  				$result = $this->callHandler($handler, $exception);
  
  				if ($result !== null) {
  					return $this->makeResponse($result, $exception);
  				}
  			} catch (Exception $newException) {
  				return $this->handle($newException);
  			}
  		}
  
  		return $this->makeResponse($this->defaultHandler->handle($exception), $exception);
  	}
docs: {@inheritdoc}