in reply to Error Reporting from Module
I've looked at your code. My recommendation would be to replace things like this:
carp "xyz"; return;
With this:
return $self->log_error("xyz");
And then define this method:
sub log_error { carp $_[1]; return; }
Then anybody who needs different error handling can subclass your class.
use Subclass::Of "WebService::Discord::Webhook", -as => "MyWebhook", -methods => [ error_log => sub { my ($self, $message) = @_; # alternative error handling here }, ]; ...; my $webhook = MyWebhook->new(...);
If you have different severities of error message, you may wish to provide multiple methods like log_unrecoverable_error and log_recoverable_error. Whatever makes sense to you.
Document these methods, how and when they will be called, etc. This way, people subclassing your module will know that they're not some kind of internal thing that might disappear in the next release, but are a supported part of the API.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Error Reporting from Module
by Fletch (Bishop) on Oct 09, 2019 at 13:24 UTC | |
by tobyink (Canon) on Oct 09, 2019 at 14:44 UTC | |
by Fletch (Bishop) on Oct 09, 2019 at 15:15 UTC |