mojo
mojo copied to clipboard
Lack of submodule information in Mojo::Exception trace
Perl (v5.36.0, linux) Mojolicious (9.26, Waffle)
- Operating system: Arch Linux
Steps to reproduce the behavior
Script to compare Mojo::Exception trace with croak trace
#!/usr/bin/env perl
use v5.36;
use Carp;
use Mojo::Exception qw(check raise);
sub mojo_exception() {
eval {
raise 'MyApp::X', 'exception: raise';
} or check $@ => [
default => sub { say $_->verbose(1) },
];
}
sub carp_croak() {
eval {
croak 'exception: croak';
} or check $@ => [
default => sub { say $_ },
];
}
sub main() {
mojo_exception();
carp_croak();
return 0;
}
exit main();
result:
exception: raise at /home/agrechkin/tmp/test-exception line 9.
Traceback (most recent call first):
File "/home/agrechkin/tmp/test-exception", line 9, in "main"
File "/home/agrechkin/tmp/test-exception", line 12, in "main"
File "/home/agrechkin/tmp/test-exception", line 24, in "main"
File "/home/agrechkin/tmp/test-exception", line 29, in "main"
exception: croak at /home/agrechkin/tmp/test-exception line 17.
eval {...} called at /home/agrechkin/tmp/test-exception line 20
main::carp_croak() called at /home/agrechkin/tmp/test-exception line 25
main::main() called at /home/agrechkin/tmp/test-exception line 29
Expected behavior
trace should print submodule names, not just package names, similar to croak. not: main, main, main but: main::main(), main::mojo_excteption(), main::ANON / eval
Actual behavior
trace prints package names for each frame
Feel free to make suggestions for how to make the trace still look nice with more information.