Thanks for reporting! Turns out this isn’t actually a bug, but the way shell() works. As Jonathan explained at:
https://irclog.perlgeek.de/perl6-dev/2017-04-04#i_14372945 the shell() function returns a Proc object. This only throws the shelling out failed and the Proc object is sunk. So ENOTABUG. > On 4 Apr 2017, at 11:52, brian d foy (via RT) <perl6-bugs-follo...@perl.org> > wrote: > > # New Ticket Created by "brian d foy" > # Please include the string: [perl #131097] > # in the subject line of all future correspondence about this issue. > # <URL: https://rt.perl.org/Ticket/Display.html?id=131097 > > > > I originally asked about this on Stackoverflow > (http://stackoverflow.com/q/43199427/2766176) > > This `try` catches the exception: > > try die X::AdHoc; > say "Got to the end"; > > The output shows that the program continues: > > Got to the end > > If I attempt it with `shell` and a command that doesn't exit with 0, > the `try` doesn't catch it: > > try shell('/usr/bin/false'); > say "Got to the end"; > > The output doesn't look like an exception: > > The spawned command '/usr/bin/false' exited unsuccessfully (exit code: 1) > in block <unit> at ... line ... > > What's going on that this makes it through the `try`? > > --- Perl variables --- > Perl: Perl 6 > Executable: perl6 > Flavor: Rakudo 2017.01 > VM: MoarVM 2017.01 > Distro: macosx > Kernel: darwin > PERL6LIB: > > --- Other Environment --- > LANG: en_US.UTF-8 > LANGUAGE: en_US.UTF-8 > LC_ALL: en_US.UTF-8 > LESSCHARSET: utf-8 > LOCALE_I_WANT: en_US.UTF-8 > LOCAL_PATH: /usr/local/bin > SHELL: /bin/bash > SHLVL: 1 > TERM: vt100 > > -- > brian d foy <brian.d....@gmail.com> > http://www.pair.com/~comdog/