File::KDBX::Error(3p)

NAME
File::KDBX::Error - Represents something bad that happened

VERSION
version 0.906

ATTRIBUTES

  details
    \%details = $error->details;

Get the error details.

  errno
Get the value of "errno" when the exception was created.

  previous
Get the value of $@ (i.e. latest exception) at the time the exception was created.

  trace
Get a stack trace indicating where in the code the exception was created.

  type
Get the exception type, if any.

METHODS

  new
    $error = File::KDBX::Error->new($message, %details);

Construct a new error.

  error
    $error = error($error);
    $error = error($message, %details);
    $error = File::KDBX::Error->error($error);
    $error = File::KDBX::Error->error($message, %details);

Wrap a thing to make it an error object. If the thing is already an error, it gets returned. Otherwise what is passed will be forwarded to "new" to create a new error object.

This can be convenient for error handling when you're not sure what the exception is but you want to treat it as a File::KDBX::Error. Example:

    eval { ... };
    if (my $error = error(@_)) {
        if ($error->type eq 'key.missing') {
            handle_missing_key($error);
        }
        else {
            handle_other_error($error);
        }
    }

  to_string
    $message = $error->to_string;
    $message = "$error";

Stringify an error.

This does not contain a stack trace, but you can set the "DEBUG" environment variable to at least 2 to stringify the whole error object.

  throw
    File::KDBX::Error::throw($message, %details);
    $error->throw;

Throw an error.

  warn
    File::KDBX::Error::warn($message, %details);
    $error->warn;

Log a warning.

  alert
    alert $error;

Importable alias for "warn".

BUGS
Please report any bugs or feature requests on the bugtracker website <https://github.com/chazmcgarvey/File-KDBX/issues>

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

AUTHOR
Charles McGarvey <ccm@cpan.org>

COPYRIGHT AND LICENSE
This software is copyright (c) 2022 by Charles McGarvey.

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