NAME
   Try::Lite - easy exception catcher with auto rethrow

SYNOPSIS
     use Try::Lite;
     try {
         YourExceptionClass->throw;
     }
         'YourExceptionClass' => sub {
             say ref($@); # show 'YourExceptionClass'
         };

   You can catch base exception class:

     package YourExceptionClass {
         use parent 'BaseExceptionClass';
     }

     try {
         YourExceptionClass->throw;
     }
         'BaseExceptionClass' => sub {
             say ref($@); # show 'YourExceptionClass'
         };

   You can catch any exception:

     try {
         die "oops\n";
     }
         '*' => sub {
             say $@; # show "oops\n";
         };

   If there is no matched catch clause, Try::Lite rethrow the exception
   automatically:

     eval {
         try {
             die "oops\n";
         }
             'YourExceptionClass' => sub {};
     };
     say $@; # show "oops\n"

   You can receives the try block return value and catechs subs return
   value:

     my $ret = try {
         'foo'
     } '*' => sub {};
     say $ret; # show 'foo'

     my $ret = try {
         die 'foo'
     } '*' => sub { 'bar' };
     say $ret; # show 'bar'

   You can catch any exceptions:

     sub run (&) {
       my $code = shift;

       try { $code->() }
         'FileException'    => sub { say 'file exception' },
         'NetworkException' => sub { say 'network exception' };
     }

     run { FileException->throw };    # show 'file exception'
     run { NetworkException->throw }; # show 'network exception'
     run { die 'oops' };              # Died

DESCRIPTION
   Try::Lite is easy exception catch with Exception classes. Exception
   other than the all specified conditions are It run rethrow.

   THIS IS A DEVELOPMENT RELEASE. API MAY CHANGE WITHOUT NOTICE.

EXPORT
 try $code_ref, %catche_rules
AUTHOR
   Kazuhiro Osawa <yappo {@} shibuya {dot} pl>

SEE ALSO
   try function base is Try::Tiny

LICENSE
   Copyright (C) Kazuhiro Osawa

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