Making ClientExceptions turn into ClientErrorAction
Got some 404s which were presented as 500
This commit is contained in:
parent
99261e0781
commit
6834f355f2
38
index.php
38
index.php
|
@ -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()
|
||||||
|
|
||||||
$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()
|
||||||
|
|
||||||
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
|
||||||
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Exception(sprintf('No match for path "%s"', $path));
|
throw new NoRouteMapException($path);
|
||||||
}
|
}
|
||||||
|
|
||||||
function generate($args, $qstring, $fragment)
|
function generate($args, $qstring, $fragment)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user