NAME

JsonSQL::Error - Defines an error object to be used at various stages of JSON validation and SQL generation.

VERSION

version 0.41

SYNOPSIS

To use this:

return JsonSQL::Error->new(<error_type>, <error_msg>);

To check return values for errors:

my $retval = myFunc();
if ( eval { $retval->is_error } ) {
    return "An error occurred: $retval->{message}";
} else {
    ...
}

This module was inspired by Brian D Foy's post on The Effective Perler, https://www.effectiveperlprogramming.com/2011/10/return-error-objects-instead-of-throwing-exceptions/

METHODS

Constructor new($type, $message)

Instantiates and returns a new JsonSQL::Error object.

$type      => Any string to group error messages by.
$message   => The error message.

ObjectMethod is_error -> 1

Returns a true value. Used for conveniently catching errors:

if ( eval { $result->is_error } ) {
  die $result->{message};
}

ObjectMethod type() -> $type

Returns the type property. Useful for adding for/when loops to error handlers:

for ( $result->type ) {
  when ( 'validate' ) {
    $err = "JSON schema validation error: <br />";
    $err .= "$result->{message} <br />";
    $err =~ s/\n/\<br \/\>/;
  }
  default {
    $err = "An unspecified error occurred. <br />";
  }
}

ObjectMethod stringify() -> $string

Stringifies the error object and returns it.

AUTHOR

Chris Hoefler <bhoefler@draper.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Chris Hoefler.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.