Template Toolkit: Модули: Template::Exception

Template Toolkit

(русская редакция)

[ Пособия ] [ Руководство ] [ Модули ] [ Библиотеки ] [ Утилиты ] [ Вопросы ] [ Релиз ] [ Perl-ресурсы ] Форум ]
 
Поиск
Template Toolkit | Модули | Template::Exception

Template::Exception

[ ◄ Template::Document ] [ Template::Filters ► ]
Модуль класса по обработке исключений.

Оглавление

ОБЗОР

Индекс ] [ Модули ] [ Наверх ]

    use Template::Exception;
    my $exception = Template::Exception->new($type, $info);
    $type = $exception->type;
    $info = $exception->info;
    ($type, $info) = $exception->type_info;
    print $exception->as_string();
    $handler = $exception->select_handler(\@candidates);

ОПИСАНИЕ

Индекс ] [ Модули ] [ Наверх ]

Модуль 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'.

АВТОР

Индекс ] [ Модули ] [ Наверх ]

Энди Уардли (Andy Wardley <abw@andywardley.com>)

http://www.andywardley.com/

ВЕРСИЯ

Индекс ] [ Модули ] [ Наверх ]

2.65, поставляется в составе Template Toolkit версии 2.14, дата релиза - 4 октября 2004.

АВТОРСКИЕ ПРАВА

Индекс ] [ Модули ] [ Наверх ]

  Copyright (C) 1996-2004 Andy Wardley.  All Rights Reserved.
  Copyright (C) 1998-2002 Canon Research Centre Europe Ltd.

Этот модуль является свободно-распространяемым программным обеспечением; вы можете распространять и/или модифицировать его на тех же условиях, что и Perl.

СМОТРИ ТАКЖЕ

Индекс ] [ Модули ] [ Наверх ]