Модуль Template::Exception определяет объектный класс для
представления исключений внутри жизненного цикла обработки
шаблона. Исключения могут возбуждаться модулями внутри
Template Toolkit, или могут быть сгенерированы и возвращены
пользовательским кодом, связанного с переменными шаблона.
Исключения могут быть возбуждены в шаблоне с помощью
директивы THROW,
[% THROW user.login 'no user id: please login' %]
или вызовом метода throw() текущего объекта
Template::Context,
$context->throw('user.passwd', 'Incorrect Password');
$context->throw('Incorrect Password'); # тип 'undef'
или из perl-кода вызовом die() с объектом
Template::Exception,
die (Template::Exception->new('user.denied', 'Invalid User ID'));
или просто вызовом die() со строкой сообщения об ошибке.
Такое исключение автомагически перехватывается и
конвертируется в исключение типа 'undef', которое затем
может быть обработано обычным способом.
die "I'm sorry Dave, I can't do that";
Каждое исключение определяется его типом и информационным
компонентом (например, сообщением об ошибке). Тип может быть
любой идентифицирующей строкой и может быть составным с
точкой-разделителем (например, 'foo', 'foo.bar',
'foo.bar.baz'). Предполагается, что исключения имеют
иерархию, так что 'foo.bar' будет особым случаем более
общего типа 'foo'.
|