.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\" ========================================================================
.de Sh \" Subsection heading
.de Sp \" Vertical space (when we can't use .PP)
.de Vb \" Begin verbatim text
.de Ve \" End verbatim text
.\" Set up some character translations and predefined strings. \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote. | will give a
.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
.\" expand to `' in nroff, nothing in troff, for use with C<>.
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
. tm Index:\\$1\t\\n%\t"\\$2"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear. Run. Save yourself. No user-serviceable parts.
. \" fudge factors for nroff and troff
. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
. \" simple accents for nroff and troff
. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
. \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
. \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
. \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
.\" ========================================================================
.IX Title "Pastel::Exception 3"
.TH Pastel::Exception 3 "2003-04-29" "perl v5.8.0" "User Contributed Perl Documentation"
Pastel::Exception \- A module for easy exception handling in Pastel.
#For thowing exception from any module
# Creating an exception object has the advantage of calling
# the full stack trace. If the \fIcatch()\fR method in the Pastel::Exception
# class is not overridden, throwing an exception with a Exception object
# as parameter will call the full stack trace.
$self\->throw(Pastel::Exception(\*(L"Miserable condition\*(R"));
$self\->throw(\*(L"Miserable condition\*(R");
# If not caught it just calls croak \*(L"Miserable condition\*(R"
# If not caught it just calls croak \*(L"Unknown error\*(R";
# Catching an exception from a module
# You need to overide the \fIcatch()\fR of Exception class
$self\->throw(Pastel::Exception(\*(L"Some error\*(R");
my ($self, \f(CW$exception\fR) = \f(CW@_\fR;
\f(CW$exception\fR\->\fIprint_stack_trace()\fR; # Give full stack trace
print \f(CW$exception\fR\->\fIget_message()\fR; # prints \*(L"Some error\*(R"
croak \*(L"Miserable death\en\*(R";
Pastel::Exception is the root class of handling exception in Pastel. There are two ways exception can be handled. Either inheriting from Pastel::Exception andoverriding \fIcatch()\fR method, or by simply Creating a Pastel::Exception object and using its throw method. The exception is caught automatically by the \fIPastel::Exception::catch()\fR.
Malay <curiouser@ccmb.ap.nic.in>
.IX Subsection "new($string)"
\& Usage : Pastel::Exception->new("Some error");
\& or, Pastel::Exception->new();
\& Function : Creates and returns a Pastel::Exception object
\& Returns : Pastel::Exception object
\& Arguments: A string (optional);
\& Usage: $self->throw($e); # Inherited from Pastel::Exception class
\& or, $self->throw($string);
\& Function: Throws an exception.
\& Arguments: Either an Pastel::Exception object or a string or nothing
\& Usage : Should never be directly used. To use this function, override
\& this function after inheriting from Pastel::Exception.
\& Function : Catches an exception
\& Arguments: The function is always called with the same parameter when thrown.
\& May be a string or an Exception object or null. Should always be
\& tested with isa() before use.
.Sh "\fIprint_stack_trace()\fP"
.IX Subsection "print_stack_trace()"
\& Usage : $exception_object->print_stack_trace();
\& Function : Prints complete stack trace of the call.
.Sh "\fIget_message()\fP"
.IX Subsection "get_message()"
\& Usage : $exception_object->get_message()
\& Function : Return the message stored in the exception object.
\& Returns : A scalar containg the massage string.