/**
  * Loads a presenter, calls its method and returns the result.
  *
  * @param Template $template
  * @return string
  * @throws Exception
  */
 protected function render(Template $template)
 {
     $presenter = $this->createPresenter($template->getPresenter());
     try {
         $arguments = $this->getArguments($presenter, $template);
         $this->logger->debug($arguments);
         $result = call_user_func_array($presenter, $arguments);
     } catch (Exception $e) {
         if ($this->throwRenderExceptions) {
             throw $e;
         }
         $this->logger->error($e->getMessage() . "\n\nURL: " . URLUtils::fullUrl() . "\n\nTemplate:\n" . print_r($template, true) . (isset($arguments) ? "\n\n{$presenter} args:\n" . print_r($arguments, true) : ''));
         $result = '';
     }
     return $result;
 }