← Index
Performance Profile   « block view • line view • sub view »
For /wise/base/deliv/dev/bin/getfix
  Run on Thu May 20 15:30:03 2010
Reported on Thu May 20 16:25:44 2010

File/wise/base/static/lib/perl5/site_perl/5.10.0/DBIx/Class/Exception.pm
Statements Executed16
Total Time0.001492 seconds

Subroutines — ordered by exclusive time
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
00000DBIx::Class::Exception::BEGIN
00000DBIx::Class::Exception::__ANON__[:10]
00000DBIx::Class::Exception::rethrow
00000DBIx::Class::Exception::throw

LineStmts.Exclusive
Time
Avg.Code
1package DBIx::Class::Exception;
2
333.2e-51.1e-5use strict;
# spent 10µs making 1 call to strict::import
433.5e-51.2e-5use warnings;
# spent 32µs making 1 call to warnings::import
5
630.001200.00040use Carp::Clan qw/^DBIx::Class/;
# spent 125µs making 1 call to Carp::Clan::import
738.0e-52.7e-5use Scalar::Util qw/blessed/;
# spent 43µs making 1 call to Exporter::import
8
9use overload
10 '""' => sub { shift->{msg} },
1130.000144.6e-5 fallback => 1;
# spent 79µs making 1 call to overload::import
12
13=head1 NAME
14
15DBIx::Class::Exception - Exception objects for DBIx::Class
16
17=head1 DESCRIPTION
18
19Exception objects of this class are used in internally by
20he default error handling of L<DBIx::Class::Schema/throw_exception>
21to prevent confusing and/or redundant re-application of L<Carp>'s
22stack trace information.
23
24These objects stringify to the contained error message, and use
25overload fallback to give natural boolean/numeric values.
26
27=head1 METHODS
28
29=head2 throw
30
31=over 4
32
33=item Arguments: $exception_scalar, $stacktrace
34
35=back
36
37This is meant for internal use by L<DBIx::Class>'s C<throw_exception>
38code, and shouldn't be used directly elsewhere.
39
40Expects a scalar exception message. The optional argument
41C<$stacktrace> tells it to use L<Carp/longmess> instead of
42L<Carp::Clan/croak>.
43
44 DBIx::Class::Exception->throw('Foo');
45 eval { ... }; DBIx::Class::Exception->throw($@) if $@;
46
47=cut
48
49sub throw {
50 my ($class, $msg, $stacktrace) = @_;
51
52 # Don't re-encapsulate exception objects of any kind
53 die $msg if blessed($msg);
54
55 # use Carp::Clan's croak if we're not stack tracing
56 if(!$stacktrace) {
57 local $@;
58 eval { croak $msg };
59 $msg = $@
60 }
61 else {
62 $msg = Carp::longmess($msg);
63 }
64
65 my $self = { msg => $msg };
66 bless $self => $class;
67
68 die $self;
69}
70
71=head2 rethrow
72
73This method provides some syntactic sugar in order to
74re-throw exceptions.
75
76=cut
77
78sub rethrow {
79 die shift;
80}
81
82=head1 AUTHORS
83
84Brandon L. Black <blblack@gmail.com>
85
86=head1 LICENSE
87
88You may distribute this code under the same terms as Perl itself.
89
90=cut
91
9213.0e-63.0e-61;