← Index
NYTProf Performance Profile   « line view »
For starman worker -M FindBin --max-requests 50 --workers 2 --user=kohadev-koha --group kohadev-koha --pid /var/run/koha/kohadev/plack.pid --daemonize --access-log /var/log/koha/kohadev/plack.log --error-log /var/log/koha/kohadev/plack-error.log -E deployment --socket /var/run/koha/kohadev/plack.sock /etc/koha/sites/kohadev/plack.psgi
  Run on Fri Jan 8 14:16:49 2016
Reported on Fri Jan 8 14:23:07 2016

Filename/usr/share/perl5/DBIx/Class/Exception.pm
StatementsExecuted 0 statements in 0s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11115µs43µsDBIx::Class::Exception::::BEGIN@14DBIx::Class::Exception::BEGIN@14
11114µs20µsDBIx::Class::Exception::::BEGIN@3DBIx::Class::Exception::BEGIN@3
1118µs11µsDBIx::Class::Exception::::BEGIN@4DBIx::Class::Exception::BEGIN@4
1114µs4µsDBIx::Class::Exception::::BEGIN@11DBIx::Class::Exception::BEGIN@11
1113µs3µsDBIx::Class::Exception::::BEGIN@8DBIx::Class::Exception::BEGIN@8
0000s0sDBIx::Class::Exception::::__ANON__[:14]DBIx::Class::Exception::__ANON__[:14]
0000s0sDBIx::Class::Exception::::rethrowDBIx::Class::Exception::rethrow
0000s0sDBIx::Class::Exception::::throwDBIx::Class::Exception::throw
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package DBIx::Class::Exception;
2
3227µs
# spent 20µs (14+7) within DBIx::Class::Exception::BEGIN@3 which was called: # once (14µs+7µs) by DBIx::Class::BEGIN@25 at line 3
use strict;
# spent 20µs making 1 call to DBIx::Class::Exception::BEGIN@3 # spent 7µs making 1 call to strict::import
4214µs
# spent 11µs (8+3) within DBIx::Class::Exception::BEGIN@4 which was called: # once (8µs+3µs) by DBIx::Class::BEGIN@25 at line 4
use warnings;
# spent 11µs making 1 call to DBIx::Class::Exception::BEGIN@4 # spent 4µs making 1 call to warnings::import
5
6# load Carp early to prevent tickling of the ::Internal stash being
7# interpreted as "Carp is already loaded" by some braindead loader
813µs
# spent 3µs within DBIx::Class::Exception::BEGIN@8 which was called: # once (3µs+0s) by DBIx::Class::BEGIN@25 at line 8
use Carp ();
# spent 3µs making 1 call to DBIx::Class::Exception::BEGIN@8
9$Carp::Internal{ (__PACKAGE__) }++;
10
1114µs
# spent 4µs within DBIx::Class::Exception::BEGIN@11 which was called: # once (4µs+0s) by DBIx::Class::BEGIN@25 at line 11
use DBIx::Class::Carp ();
# spent 4µs making 1 call to DBIx::Class::Exception::BEGIN@11
12
13use overload
14
# spent 43µs (15+29) within DBIx::Class::Exception::BEGIN@14 which was called: # once (15µs+29µs) by DBIx::Class::BEGIN@25 at line 15
'""' => sub { shift->{msg} },
15272µs fallback => 1;
# spent 43µs making 1 call to DBIx::Class::Exception::BEGIN@14 # spent 29µs making 1 call to overload::import
16
17=head1 NAME
18
19DBIx::Class::Exception - Exception objects for DBIx::Class
20
21=head1 DESCRIPTION
22
23Exception objects of this class are used internally by
24the default error handling of L<DBIx::Class::Schema/throw_exception>
25and derivatives.
26
27These objects stringify to the contained error message, and use
28overload fallback to give natural boolean/numeric values.
29
30=head1 METHODS
31
32=head2 throw
33
34=over 4
35
36=item Arguments: $exception_scalar, $stacktrace
37
38=back
39
40This is meant for internal use by L<DBIx::Class>'s C<throw_exception>
41code, and shouldn't be used directly elsewhere.
42
43Expects a scalar exception message. The optional boolean C<$stacktrace>
44causes it to output a full trace similar to L<confess|Carp/DESCRIPTION>.
45
46 DBIx::Class::Exception->throw('Foo');
47 try { ... } catch { DBIx::Class::Exception->throw(shift) }
48
49=cut
50
51sub throw {
52 my ($class, $msg, $stacktrace) = @_;
53
54 # Don't re-encapsulate exception objects of any kind
55 die $msg if ref($msg);
56
57 # all exceptions include a caller
58 $msg =~ s/\n$//;
59
60 if(!$stacktrace) {
61 # skip all frames that match the original caller, or any of
62 # the dbic-wide classdata patterns
63 my ($ln, $calling) = DBIx::Class::Carp::__find_caller(
64 '^' . caller() . '$',
65 'DBIx::Class',
66 );
67
68 $msg = "${calling}${msg} ${ln}\n";
69 }
70 else {
71 $msg = Carp::longmess($msg);
72 }
73
74 my $self = { msg => $msg };
75 bless $self => $class;
76
77 die $self;
78}
79
80=head2 rethrow
81
82This method provides some syntactic sugar in order to
83re-throw exceptions.
84
85=cut
86
87sub rethrow {
88 die shift;
89}
90
91=head1 FURTHER QUESTIONS?
92
93Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>.
94
95=head1 COPYRIGHT AND LICENSE
96
97This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE>
98by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can
99redistribute it and/or modify it under the same terms as the
100L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>.
101
102=cut
103
1041;