1Dancer::Exception::BaseU(s3e)r Contributed Perl DocumentaDtainocner::Exception::Base(3)
2
3
4
6 Dancer::Exception::Base - the base class of all Dancer exceptions
7
9 version 1.3513
10
12 Dancer::Exception::Base is the base class of all Dancer exception. All
13 core exceptions, and all custom exception registered using
14 "Dancer::Exception::register_exception" inherits of
15 "Dancer::Exception::Base".
16
18 throw
19 Throws an exception. It's what "raise" (from Dancer::Exception) uses.
20 Any arguments is set as raising parameters. You should not use this
21 method directly, but instead, use "raise" from Dancer::Exception.
22
23 Warning, if you want to rethrow an exception, use "rethrow".
24
25 rethrow
26 Re-throw the exception, without touching its parameters. Useful if
27 you've caught and exception but don't want to handle it, and want to
28 rethrow it.
29
30 try { ... }
31 catch {
32 my ($e) = @_;
33 $e->does('InvalidLogin')
34 or $e->rethrow;
35 ...
36 };
37
38 does
39 Given an exception type, returns true if the exception is of the same
40 type.
41
42 try { raise InvalidLogin => 'foo'; }
43 catch {
44 my ($e) = @_;
45 $e->does('InvalidLogin') # true
46 ...
47 };
48
49 It can receive more than one type, useful for composed exception, or
50 checking multiple types at once. "does" performs a logical OR between
51 them:
52
53 try { raise InvalidPassword => 'foo'; }
54 catch {
55 my ($e) = @_;
56 $e->does('InvalidLogin', 'InvalidPassword') # true
57 ...
58 };
59
60 get_composition
61 Returns the composed types of an exception. As every exception inherits
62 of Dancer::Exception::Base, the returned list contains at least 'Base',
63 and the exception class name.
64
65 Warning, the result is a list, so you should call this method in list
66 context.
67
68 try { raise InvalidPassword => 'foo'; }
69 catch {
70 my ($e) = @_;
71 my @list = $e->get_composition()
72 # @list contains ( 'InvalidPassword', 'Base', ... )
73 };
74
75 message
76 Computes and returns the message associated to the exception. It'll
77 apply the parameters that were set at throw time to the message pattern
78 of the exception.
79
81 string overloading
82 All Dancer exceptions properly stringify. When evaluated to a string,
83 they return their message, concatenated with their stack trace (see
84 below).
85
86 cmp overloading
87 The "cmp" operator is also overloaded, thus all the string operations
88 can be done on Dancer's exceptions, as they will all be based on the
89 overloaded "cmp" operator. Dancer exceptions will be compared without
90 their stacktraces.
91
93 Similarly to Carp, Dancer exceptions stringification appends a string
94 stacktrace to the exception message.
95
96 The stacktrace can be a short one, or a long one. Actually the
97 implementation internally uses Carp.
98
99 To enable long stack trace (for debugging purpose), you can use the
100 global variable "Dancer::Exception::Verbose" (see below).
101
102 The short and long stacktrace snippets are stored within
103 "$self-"{_shortmess}> and "$self-"{_longmess}>. Don't touch them or
104 rely on them, they are internals, and will change soon.
105
107 $Dancer::Exception::Verbose
108 When set to 1, exceptions will stringify with a long stack trace. This
109 variable is similar to $Carp::Verbose. I recommend you use it like
110 that:
111
112 local $Dancer::Exception::Verbose;
113 $Dancer::Exception::Verbose = 1;
114
115 All the Carp global variables can also be used to alter the stacktrace
116 generation.
117
119 Dancer Core Developers
120
122 This software is copyright (c) 2010 by Alexis Sukrieh.
123
124 This is free software; you can redistribute it and/or modify it under
125 the same terms as the Perl 5 programming language system itself.
126
127
128
129perl v5.32.0 2020-07-28 Dancer::Exception::Base(3)