Духовность™
Продвинутый новичок
Как "красиво" выйти из класса при пользовательской ошибке?
Нужно при пользовательской ошибке в приложении делать header: location. Раньше это выглядело так:
Сейчас подумываю над тем, что бы кидать исключения:
Соответственно на самом верхнем уровне это исключение будет ловиться:
Меня интересует вопрос - правильно ли использовать исключения в таком контексте? Я где-то читал, что механизм исключений мол предназначен для ловли ошибок уровня программы, а тут явно не исключительная ситуация.
Нужно при пользовательской ошибке в приложении делать header: location. Раньше это выглядело так:
PHP:
if (!$user->checkAccess())) // ошибка - нет прав
{
$redirect = new Redirect();
$redirect->setType('alert');
$redirect->setMessage('Нет прав');
$redirect->setRedirectUrl('/admin/user.html');
$redirect->run(); // тут выполнялся header и стоял exit
}
PHP:
if (!$user->checkAccess()) // ошибка
{
throw new RedirectException('alert', 'Нет прав', '/admin/user.html');
}
PHP:
try
{
// application
}
catch (Exception $e)
{
//...
}
catch (RedirectException $e)
{
$redirect = new Redirect();
$redirect->setType( $e->type);
$redirect->setMessage( $e->message );
$redirect->setRedirectUrl( $e->url );
$redirect->run();
}
}