Exceptions
An exception is thrown by the die keyword, which, if not caught, it terminates the program with an appropriate exit code.
try {
die "I'm dead!"; # throws an exception of type 'error'
}
catch { |type, msg|
say "type: #{type}"; # type: error
say "msg: #{msg}"; # msg: I'm dead! at test.sf line 2.
};
say "I'm alive...";
die "Now I'm dead!"; # this line terminates the program
say "Or am I?"; # Yes, you are!
Output:
type: error
msg: I'm dead! at test.sf line 2.
I'm alive...
Now I'm dead! at test.sf line 10.