public function display()
    {
        if ($this->content instanceof Exception) {

            $error = $this->content;
            $layout = $error->getCode();

            if (! $this->getTemplate()->findPath('errors'.DS.$layout.'.php')) {
                $layout = 'default';
            }

            $this->content = $this->getTemplate()->loadTemplate('errors'.DS.$layout, array('error' => $error))->render();

            $settings = $this->getService('com:settings.setting');

            if ($settings->debug) {

                $traces = array();
                $traces[] = '<h4>Exception '.get_class($error).' with message "'.$error->getMessage().'"</h4>';
                $traces[] = $error->getFile().':'.$error->getLine();

                foreach ($error->getTrace() as $trace) {
                    $str = '';

                    if (isset($trace['file'])) {
                        $str = $trace['file'].':';
                    }

                    if (isset($trace['line'])) {
                        $str .= $trace['line'];
                    }

                    if (empty($str)) {
                        continue;
                    }

                    $traces[] = $str;
                }

                $this->content .= '<pre>'.implode('<br />', $traces).'</pre>';
            }
        }

        $this->output = $this->getTemplate()->loadTemplate($this->getLayout(), array('output' => $this->content))->render();

        return $this->output;
    }