git.gnu.io has moved to IP address 209.51.188.249 -- please double check where you are logging in.

Commit 6834f355 authored by mmn's avatar mmn

Making ClientExceptions turn into ClientErrorAction

Got some 404s which were presented as 500
parent 99261e07
...@@ -125,16 +125,21 @@ function handleError($error) ...@@ -125,16 +125,21 @@ function handleError($error)
common_config('site', 'email') common_config('site', 'email')
); );
$dac = new DBErrorAction($msg, 500); $erraction = new DBErrorAction($msg, 500);
$dac->showPage(); } elseif ($error instanceof ClientException) {
$erraction = new ClientErrorAction($error->getMessage(), $error->getCode());
} elseif ($error instanceof ServerException) {
$erraction = new ServerErrorAction($error->getMessage(), $error->getCode(), $error);
} else { } else {
$sac = new ServerErrorAction($error->getMessage(), 500, $error); // If it wasn't specified more closely which kind of exception it was
$sac->showPage(); $erraction = new ServerErrorAction($error->getMessage(), 500, $error);
} }
$erraction->showPage();
} catch (Exception $e) { } catch (Exception $e) {
// TRANS: Error message. // TRANS: Error message.
echo _('An error occurred.'); echo _('An error occurred.');
exit(-1);
} }
exit(-1); exit(-1);
} }
...@@ -255,13 +260,6 @@ function main() ...@@ -255,13 +260,6 @@ function main()
$args = $r->map($path); $args = $r->map($path);
if (!$args) {
// TRANS: Error message displayed when trying to access a non-existing page.
$cac = new ClientErrorAction(_('Unknown page'), 404);
$cac->showPage();
return;
}
$site_ssl = common_config('site', 'ssl'); $site_ssl = common_config('site', 'ssl');
// If the request is HTTP and it should be HTTPS... // If the request is HTTP and it should be HTTPS...
...@@ -309,22 +307,10 @@ function main() ...@@ -309,22 +307,10 @@ function main()
if (!class_exists($action_class)) { if (!class_exists($action_class)) {
// TRANS: Error message displayed when trying to perform an undefined action. // TRANS: Error message displayed when trying to perform an undefined action.
$cac = new ClientErrorAction(_('Unknown action'), 404); throw new ClientException(_('Unknown action'), 404);
$cac->showPage();
} else {
try {
call_user_func("$action_class::run", $args);
} catch (ClientException $cex) {
$cac = new ClientErrorAction($cex->getMessage(), $cex->getCode());
$cac->showPage();
} catch (ServerException $sex) { // snort snort guffaw
$sac = new ServerErrorAction($sex->getMessage(), $sex->getCode(), $sex);
$sac->showPage();
} catch (Exception $ex) {
$sac = new ServerErrorAction($ex->getMessage(), 500, $ex);
$sac->showPage();
}
} }
call_user_func("$action_class::run", $args);
} }
main(); main();
......
...@@ -1094,14 +1094,12 @@ class Router ...@@ -1094,14 +1094,12 @@ class Router
function map($path) function map($path)
{ {
try { try {
$match = $this->m->match($path); return $this->m->match($path);
} catch (Exception $e) { } catch (NoRouteMapException $e) {
common_debug('Problem getting route for '._ve($path).' - '._ve($e->getMessage())); common_debug($e->getMessage());
// TRANS: Client error on action trying to visit a non-existing page. // TRANS: Client error on action trying to visit a non-existing page.
throw new ClientException(_('Page not found.'), 404); throw new ClientException(_('Page not found.'), 404);
} }
return $match;
} }
function build($action, $args=null, $params=null, $fragment=null) function build($action, $args=null, $params=null, $fragment=null)
......
...@@ -123,7 +123,7 @@ class URLMapper ...@@ -123,7 +123,7 @@ class URLMapper
} }
} }
throw new Exception(sprintf('No match for path "%s"', $path)); throw new NoRouteMapException($path);
} }
function generate($args, $qstring, $fragment) function generate($args, $qstring, $fragment)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment