http://www.perlmonks.org?node_id=745973


in reply to Error.pm and custom Exception

Hi,

As said already, you don't get $self in the constructor... it's $class, so you should have:

my $self = $class->SUPER::new(...)

Beside of this, I would strongly recommend you to not use Error.pm, based on my own experience. Some reasons:

* If you forget the ; at the end of your try...catch block you will have hard time trying to find obscure bugs, what you see in the code is not what is being executed.
* You have to include in every place you want to use the try...catch syntax sugar the 'use Error qw(:try)' and not only the subclassed exeption class. You will not get compiling error, it will just not work as expected.
* Debugging is also painful, the code executed inside of the try...catch blocks are wrapped, so it makes debugging using the debugger a pain; check it out for yourself.

For these reasons I would rather recommend you to use Exception::Class instead.

Regards,

fmerges at irc.freenode.net