-
-
31 Jul 2017 21:47:25 UTC
- Distribution: Unexpected
- Module version: v1.0.1
- Source (raw)
- Browse (raw)
- Changes
- Homepage
- How to Contribute
- Repository
- Issues (1)
- Testers (788 / 0 / 0)
- Kwalitee
Bus factor: 0- 99.47% Coverage
- License: perl_5
- Perl: v5.10.1
- Activity
24 month- Tools
- Download (35.2KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- Devel::StackTrace
- Exporter::Tiny
- Module::Runtime
- Moo
- Package::Stash
- Sub::Install
- Type::Tiny
- namespace::autoclean
- and possibly others
- Reverse dependencies
- CPAN Testers List
- Dependency graph
- Name
- Synopsis
- Description
- Configuration and Environment
- Subroutines/Methods
- Diagnostics
- Dependencies
- Incompatibilities
- Bugs and Limitations
- Acknowledgements
- Author
- License and Copyright
Name
Unexpected::Functions - A collection of functions used in this distribution
Synopsis
package YourApp::Exception; use Moo; extends 'Unexpected'; with 'Unexpected::TraitFor::ExceptionClasses'; package YourApp; use Unexpected::Functions 'Unspecified'; sub EXCEPTION_CLASS { 'YourApp::Exception' } sub throw { EXCEPTION_CLASS->throw( @_ ) } throw Unspecified, args => [ 'parameter name' ];
Description
A collection of functions used in this distribution
Also exports any exceptions defined by the caller's
EXCEPTION_CLASS
as subroutines that return a subroutine that returns the subroutines name as a string. The calling package can then throw exceptions with a class attribute that takes these subroutines return valuesConfiguration and Environment
Defines no attributes
Subroutines/Methods
catch_class
use Try::Tiny; try { die $exception_object } catch_class [ 'exception_class' => sub { # handle exception }, ... ], finally { # always do this };
See Try::Tiny::ByClass. Checks the exception object's
class
attribute against the list of exception class names passed tocatch_class
. If there is a match, call the subroutine provided to handle that exception. Re-throws the exception if there is no match or if the exception object has noclass
attributeexception
$exception_object_ref = exception $optional_error;
A function which calls the caught class method
has_exception
has_exception 'exception_name' => parents => [ 'parent_exception' ], error => 'Error message for the exception with placeholders';
A function which calls "add_exception" in Unexpected::TraitFor::ExceptionClasses via the calling class which is assumed to inherit from a class that consumes the Unexpected::TraitFor::ExceptionClasses role
inflate_message
$message = inflate_message $template, $val1, $val2, ...;
Substitute the placeholders in the
$template
string, e.g.[_1]
, with the corresponding value. Undefined values are represented as[?]
, zero length strings are represented as[]
. Placeholder values will be quoted when substitutedinflate_placeholders
$message = inflate_placeholders $defaults, $template, $val1, $val2, ...;
Substitute the placeholders in the
$template
string, e.g.[_1]
, with the corresponding value. The$defaults
argument is a tuple (array reference) containing the default substitution values for; an undefined value, a zero length value, and a boolean which if true prevents quoting of the placeholder values when they are substituted into the templateis_class_loaded
$bool = is_class_loaded $classname;
Returns true is the classname as already loaded and compiled
is_one_of_us
$bool = is_one_of_us $string_or_exception_object_ref;
Function which detects instances of this exception class
parse_arg_list
$hash_ref = parse_arg_list( <whatever> );
Coerces a hash reference from whatever arguments are passed. This function is responsible for parsing the arguments passed to the constructor. Supports the following signatures
# No defined arguments - returns and empty hash reference Unexpected->new(); # First argument is one if our own objects - clone it Unexpected->new( $unexpected_object_ref ); # First argument is one if our own objects, second is a hash reference # - clone the object but mutate it using the hash reference Unexpected->new( $unexpected_object_ref, { key => 'value', ... } ); # First argument is a code reference - the code reference returns the # exception class and the remaining arguments are treated as a list of # keys and values Unexpected->new( Unspecified, args => [ 'parameter name' ] ); Unexpected->new( Unspecified, [ 'parameter name' ] ); # Shortcut # First argmentt is a hash reference - clone it Unexpected->new( { key => 'value', ... } ); # Only one scalar argement - the error string Unexpected->new( $error_string ); # Second argement is a hash reference, first argument is the error Unexpected->new( $error_string, { key => 'value', ... } ); # Odd numbered list of arguments is the error followed by keys and values Unexpected->new( $error_string, key => 'value', ... ); Unexecpted->new( 'File [_1] not found', args => [ $filename ] ); Unexecpted->new( 'File [_1] not found', [ $filename ] ); # Shortcut # Arguments are a list of keys and values Unexpected->new( key => 'value', ... );
quote_bind_values
$bool = Unexpected::Functions->quote_bind_values( $bool );
Deprecated. Use third argument in "inflate_placeholders" defaults defaults. Accessor / mutator class method that toggles the state on quoting the placeholder substitution values in
inflate_message
. Defaults to truethrow
throw 'Path [_1] not found', args => [ 'pathname' ];
A function which calls the throw class method
throw_on_error
throw_on_error @optional_args;
A function which calls the throw_on_error class method
Diagnostics
None
Dependencies
Incompatibilities
There are no known incompatibilities in this module
Bugs and Limitations
There are no known bugs in this module. Please report problems to the address below. Patches are welcome
Acknowledgements
Larry Wall - For the Perl programming language
Author
Peter Flanigan,
<pjfl@cpan.org>
License and Copyright
Copyright (c) 2017 Peter Flanigan. All rights reserved
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic
This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
Module Install Instructions
To install Unexpected, copy and paste the appropriate command in to your terminal.
cpanm Unexpected
perl -MCPAN -e shell install Unexpected
For more information on module installation, please visit the detailed CPAN module installation guide.