Обработка исключений в Kohana 3.3

от автора

Добрый день, %username%!
Данную статью навеяло меня написать, создавая очередной проект, на «новой» Kohana 3.3. Мне необходимо было ловить исключения 404 ошибки и выводить свою страницу. Я решил пойти старым, но работающим путём. Раньше я просто ловил исключения функцией set_exception_handler, и обрабатывал в моём классе. Подробнее под катом. Это можно назвать костылём, которые я не очень сильно люблю, но на тот момент у меня не было другого выбора. В итоге в последней версии исключения просто не желали «ловиться». Я недоумевал, и уже готов был проклять фреймворк, пока полностью не пробежался по официальной документации последней версии. В итоге ребята наконец-то решили эту неудобную проблему, всё стало очень просто. Нам просто нужно переопределить класс нашего exception’a. И мы более не прибегаем к использованию «костылей».

class HTTP_Exception_404 extends Kohana_HTTP_Exception_404 {       /**      * Generate a Response for the 404 Exception.      *      * The user should be shown a nice 404 page.      *       * @return Response      */     public function get_response()     {         $view = View::factory('errors/404');           // Remembering that `$this` is an instance of HTTP_Exception_404         $view->message = $this->getMessage();           $response = Response::factory()             ->status(404)             ->body($view->render());           return $response;     } }

Пример из официальной документации. Как мы видим, в методе get_response реализуется логика обработки исключения. Надеюсь я облегчил жизнь людям, которые блуждают в поиске статьи по организации страницы 404 ошибки в Kohana. Огромное спасибо за внимание!

ссылка на оригинал статьи http://habrahabr.ru/post/164071/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *