src/app/n2n/core/err/ExceptionHandler.php
private function buildDevelopmentExceptionHtmlContent(\Throwable $e) {
		$html = '';
		$first = true;
		do {
			if ($first) $first = false;
			else {
				$html .= '<h3>caused by: ' . htmlspecialchars(get_class($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</h3>' . "\r\n";
			}
			
			$html .= '<p>' . htmlspecialchars($e->getMessage(), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</p>' . "\r\n";
			
			if ($e instanceof \ErrorException || $e instanceof \Error) {
				$filePath = $e->getFile();
				$lineNo = $e->getLine();
				ThrowableInfoFactory::findCallPos($e, $filePath, $lineNo);
				
				if ($filePath !== null) {
					$html .= '<p>File: <strong>' . htmlspecialchars($filePath, ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</strong></p>' . "\r\n";
				}
				
				if ($lineNo !== null) {
					$html .= '<p>Line: <strong>' . htmlspecialchars($lineNo, ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</strong></p>' . "\r\n";
				}
			}	
			
			$html .= '<pre>' .  htmlspecialchars(ThrowableInfoFactory::buildStackTraceString($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</pre>' . "\r\n";
		} while (null != ($e = $e->getPrevious()));
			
		return $html;
	}
private function buildDevelopmentExceptionHtmlContent(\Throwable $e) {
		$html = '';
		$first = true;
		do {
			if ($first) $first = false;
			else {
				$html .= '<h3>caused by: ' . htmlspecialchars(get_class($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</h3>' . "\r\n";
			}
			
			$html .= '<p>' . htmlspecialchars($e->getMessage(), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</p>' . "\r\n";
			
			if ($e instanceof \ErrorException || $e instanceof \Error) {
				$filePath = $e->getFile();
				$lineNo = $e->getLine();
				ThrowableInfoFactory::findCallPos($e, $filePath, $lineNo);
				
				if ($filePath !== null) {
					$html .= '<p>File: <strong>' . htmlspecialchars($filePath, ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</strong></p>' . "\r\n";
				}
				
				if ($lineNo !== null) {
					$html .= '<p>Line: <strong>' . htmlspecialchars($lineNo, ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</strong></p>' . "\r\n";
				}
			}	
			
			$html .= '<pre>' .  htmlspecialchars(ThrowableInfoFactory::buildStackTraceString($e), ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE) . '</pre>' . "\r\n";
		} while (null != ($e = $e->getPrevious()));
			
		return $html;
	}
private function buildDevelopmentExceptionHtmlContent ( \ Throwable $ e ) { $ html = '' ; $ first = true ; do { if ( $ first ) $ first = false ; else { $ html .= '<h3>caused by: ' . htmlspecialchars ( get_class ( $ e ) , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</h3>' . "\r\n" ; } $ html .= '<p>' . htmlspecialchars ( $ e -> getMessage ( ) , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</p>' . "\r\n" ; if ( $ e instanceof \ ErrorException || $ e instanceof \ Error ) { $ filePath = $ e -> getFile ( ) ; $ lineNo = $ e -> getLine ( ) ; ThrowableInfoFactory :: findCallPos ( $ e , $ filePath , $ lineNo ) ; if ( $ filePath !== null ) { $ html .= '<p>File: <strong>' . htmlspecialchars ( $ filePath , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</strong></p>' . "\r\n" ; } if ( $ lineNo !== null ) { $ html .= '<p>Line: <strong>' . htmlspecialchars ( $ lineNo , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</strong></p>' . "\r\n" ; } } $ html .= '<pre>' . htmlspecialchars ( ThrowableInfoFactory :: buildStackTraceString ( $ e ) , ENT_QUOTES | ENT_HTML5 | ENT_SUBSTITUTE ) . '</pre>' . "\r\n" ; } while ( null != ( $ e = $ e -> getPrevious ( ) ) ) ; return $ html ; }
Create html description of an exception for fatal error view if development
is enabled.

@param \Exception $e
@return string html description
Create html description of an exception for fatal error view if development is enabled .