Catalyst::Exception

Catalyst::Exception — модуль для работы с исключениями.

Catalyst::Exception наследует методы Catalyst::Exception::Base, если вы не захотели задать какой-то иной класс для работы с исключительными ситуациями в Catalyst-приложении.

Обычно в модулях для работы с исключениями есть метод throw — для генерации исключений (как говорят, «выбросить»). Код, в котором происходит вызов исключения, принято оформлять с помощью try. Для того, чтобы исключение перехватить, обычно используется метод catch («поймать»).

Catalyst::Exception предоставляет для работы метод throw().

Методы

throw

Метод throw() генерирует исключение. Выполнение запроса будет экстренно завершено и пользователю возвращено сообщение об ошибке.

На самом деле, метод throw() является оберткой для функции croak() модуля Carp.

Модуль Carp предоставляет альтернативу стандартным функциям perl — warn() и die(). Функция carp() вместо warn(), функции croak() (для коротких сообщений) и confess() (для длинных сообщений) вместо die().

Смысл использования croak() вместо die() — разный вывод сообщений об ошибках.

Но по сути, это все те же warn() и die(), просто с предварительно отформатированным выводом.

Если вы вызовете в вашем catalyst-приложении die() :

то получите вот такой вывод:

catalyst_exception_croak

Пользователь увидит на экране имя вашего проблемного файла и номер строки с ошибкой.

Если вы будете использовать Catalyst::Exception->throw() :

то внешний вид выводимой ошибки изменится:

catalyst_exception_message