diff --git a/modules/backend/classes/Controller.php b/modules/backend/classes/Controller.php index 312745819..c88d2db5d 100644 --- a/modules/backend/classes/Controller.php +++ b/modules/backend/classes/Controller.php @@ -418,14 +418,8 @@ class Controller extends Extendable 500 ); } - catch (ApplicationException $ex) { - return Response::make($ex->getMessage(), 500); - } catch (Exception $ex) { - return Response::make( - sprintf('"%s" on line %s of %s', $ex->getMessage(), $ex->getLine(), $ex->getFile()), - 500 - ); + return Response::make(ApplicationException::getDetailedMessage($ex)); } } @@ -527,8 +521,9 @@ class Controller extends Extendable */ public function handleError($exception) { - $this->fatalError = $exception->getMessage(); - $this->vars['fatalError'] = $exception->getMessage(); + $errorMessage = ApplicationException::getDetailedMessage($exception); + $this->fatalError = $errorMessage; + $this->vars['fatalError'] = $errorMessage; } // diff --git a/modules/cms/classes/Controller.php b/modules/cms/classes/Controller.php index 15308da00..8a0ee472d 100644 --- a/modules/cms/classes/Controller.php +++ b/modules/cms/classes/Controller.php @@ -513,23 +513,8 @@ class Controller extends BaseController $responseContents['X_OCTOBER_ERROR_MESSAGE'] = $ex->getMessage(); return Response::make($responseContents, 406); } - catch (ApplicationException $ex) { - return Response::make($ex->getMessage(), 500); - } catch (Exception $ex) { - /* - * Display a more detailed error if debug mode is activated. - */ - if (Config::get('app.debug', false)) { - return Response::make(sprintf( - '"%s" on line %s of %s', - $ex->getMessage(), - $ex->getLine(), - $ex->getFile() - ), 500); - } - - return Response::make($ex->getMessage(), 500); + return Response::make(ApplicationException::getDetailedMessage($ex), 500); } } diff --git a/modules/system/classes/ExceptionBase.php b/modules/system/classes/ExceptionBase.php index 967d5b04d..09818c6e0 100644 --- a/modules/system/classes/ExceptionBase.php +++ b/modules/system/classes/ExceptionBase.php @@ -2,7 +2,9 @@ use URL; use File; +use Config; use Exception; +use System\Classes\ApplicationException; /** * The base exception class. @@ -67,6 +69,29 @@ class ExceptionBase extends Exception parent::__construct($message, $code, $previous); } + /** + * Returns a more descriptive error message if application + * debug mode is turned on. + * @param Exception $exception + * @return string + */ + public static function getDetailedMessage($exception) + { + /* + * Application Exceptions never display a detailed error + */ + if (!($exception instanceof ApplicationException) && Config::get('app.debug', false)) { + return sprintf('"%s" on line %s of %s', + $exception->getMessage(), + $exception->getLine(), + $exception->getFile() + ); + } + else { + return $exception->getMessage(); + } + } + /** * Returns the class name of the called Exception. * @return string