line |
true |
false |
branch |
47
|
4 |
1 |
if (exists $$cur_opts{$_}) { } |
73
|
0 |
132 |
if ((my $token = $parser->get_word) ne 'try') |
79
|
0 |
132 |
if ($parser->get_symbols(2) eq '=>') |
85
|
101 |
30 |
unless $OPTS{Devel::Declare::get_curstash_name()}{'-noret'} or $return_hook_id |
97
|
157 |
63 |
if ($return_hook_id and --$hook_nested_level <= 0) |
111
|
95 |
125 |
if ($token eq 'catch') { } |
|
26 |
99 |
elsif ($token eq 'finally') { } |
124
|
4 |
22 |
if ($prev_item_type == 2) |
137
|
0 |
95 |
if ($prev_item_type == 2) |
147
|
66 |
29 |
if ($parser->get_symbols(1) eq '(') { } |
150
|
63 |
3 |
if (length $args) { } |
154
|
5 |
58 |
if ($type and not $err_var) |
158
|
26 |
32 |
if ($type) { } |
165
|
10 |
48 |
if ($where_present and not $where =~ /^{.*}$/) |
169
|
9 |
39 |
if ($where) { } |
175
|
4 |
44 |
if (pos $args != length $args) |
188
|
58 |
18 |
unless $OPTS{Devel::Declare::get_curstash_name()}{'-noret'} or $return_hook_id |
194
|
38 |
32 |
if $err_var |
201
|
1 |
127 |
if $$opts{'-nosig'} |
206
|
104 |
24 |
if (not defined EVAL() or EVAL() != CALLER(2)) |
212
|
102 |
26 |
scalar @_ % 3 == 0 ? : |
216
|
104 |
24 |
$is_top_try ? : |
217
|
1 |
127 |
$$opts{'-noret'} ? : |
221
|
0 |
128 |
if ($context) { } |
|
60 |
68 |
elsif (defined $context) { } |
230
|
44 |
84 |
if $err |
232
|
31 |
13 |
if ($err and scalar @_) |
243
|
29 |
19 |
if (not $type or $err_blessed and $err->isa($type)) |
250
|
9 |
20 |
if (defined $where) |
252
|
3 |
4 |
unless &$where() |
262
|
0 |
24 |
if ($context) { } |
|
2 |
22 |
elsif (defined $context) { } |
270
|
4 |
20 |
unless (eval {
do {
$@ = $err;
if ($context) {
@_result = &$handler(@$params);
}
elsif (defined $context) {
$_result[0] = &$handler(@$params);
}
else {
&$handler(@$params);
};
1
}
}) |
275
|
0 |
24 |
if ($need_unwind) { } |
284
|
2 |
29 |
unless (eval {
do {
my $err_blessed = blessed $err;
my $pos = -3;
while ($pos + 3 < scalar @_) {
$pos += 3;
my($type, $where, $handler) = @_[$pos .. $pos + 2];
if (not $type or $err_blessed and $err->isa($type)) {
if (defined $where) {
local $_ = $err;
next unless &$where();
};
$exception_caught = 1;
my $_need_unwind = $need_unwind;
$need_unwind = 0;
my @_result;
unless (eval {
do {
$@ = $err;
if ($context) {
@_result = &$handler(@$params);
}
elsif (defined $context) {
$_result[0] = &$handler(@$params);
}
else {
&$handler(@$params);
};
1
}
}) {
$err = $@;
$catch_fail = 1;
};
if ($need_unwind) {
@result = @_result;
}
else {
$need_unwind = $_need_unwind;
};
last;
};
};
1
}
}) |
290
|
26 |
102 |
if (defined $finally) |
295
|
21 |
103 |
if ($catch_fail or not $exception_caught || $$opts{'-safetry'}) |
300
|
99 |
4 |
if ($$opts{'-noret'} or not $need_unwind) { } |
|
4 |
0 |
elsif ($need_unwind) { } |
303
|
0 |
99 |
wantarray ? : |
306
|
3 |
1 |
if $is_top_try |
307
|
0 |
4 |
$context ? : |