I am trying to find a way to send a message via STDERR to a user, and to exit, but to eliminate the backtrace printing.

so .. either I use your suggestion of 'exit note $message' which I find elegant, but so far difficult to test.

(I tried timo's suggestion of &*EXIT = -> | { die 'exited' }

but then I cant work out how to get the message. I've been looking at Zoffix's Test::Output, but not

or .. change the default exception handler. However, I only want to change the way the fatal exception is handled for the class that I am writing.

Eg.

class conditions {

has $!dir = 'path';

has @!files = ();

...

method check-dir {

    die 'directory not present' unless $!dir.IO ~~ :d;

# I would like here exit note 'directory not present' ...

}

method check-files {

    die 'no files yet' unless +@!files;

}

This may not yet be the right  approach to get what I want.


On 21/10/18 17:32, Elizabeth Mattijsen wrote:
I’m not sure what you mean by: "How do I attach a default CATCH to all methods 
in the class.”.  What are you trying to achieve?

On 21 Oct 2018, at 10:35, Richard Hainsworth <rnhainswo...@gmail.com> wrote:

This sounds great.

So I am writing a class verifies conditions, and dies when conditions are not 
met.

How do I attach a default CATCH to all methods in the class.
Or do I need to define my own Exception.

On 04/09/18 04:48, Curt Tilmes wrote:

On Mon, Sep 3, 2018 at 4:28 PM Parrot Raiser <1parr...@gmail.com> wrote:
If I understand that correctly, "die" needs to be documented as always
outputting the line number, and that for user-oriented messages, one
of the other techniques should be used.

die throws the Exception -- you can CATCH it and handle it how you like, 
including printing the message without line numbers.

(Or, for example, print the backtrace during development, but a simpler error 
message in operations).


Reply via email to