Всем привет! Объясните мне тупому как использовать исключения? Я как-то никогда не заморачивался с ними. Но вот пришло время разобраться с этим механизмом. Я может как-то неправильно понимаю их работу? Я думал так: в любом месте приложения мы можем бросить исключение и в любом месте приложения можем это исключение отловить. Я сейчас сочиняю роутер. И мне хотелось бы, чтобы он перед выводом на экран страницы проверял есть ли ошибки. Если есть, то вместо страницы отображаем страницу с текстом соответствующей ошибки. Сейчас у меня работает примерно так: PHP: if (class_exists($name)) { $controller = new $name(); } else { $this->error[404] = 'Такой страницы не существует'; } Ну и перед выводом проверяю. Если в массиве есть ошибка, значит вывожу её. Но в контроллере в свою очередь тоже часто нужно вызвать ошибку, например если пользователь не авторизован или по какой-либо другой причине. Да и много где ещё. И вот я хочу использовать для этого исключения. Можно это реализовать как-то? Спасибо.
Проброс и обработка исключений будут нормально работать не в любом месте, а в пределах try-catch. Возможные источники возникновения ошибок вроде 404 определяются легко, поэтому можно использовать и обычное ветвление. Хотя, чтобы не возиться с множественными вложенными ветвлениями, передачей связанных с ошибкой параметров и т.п., можете использовать и исключения. --- Добавлено --- P.S. Для разворачивания ветвлений можно использовать технику PHP: if (ERROR) { error(404); return; // return false; и т.п. }