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.