Saturday, September 24, 2011

Add Try::Tiny to Mouse or Moose


Here is a little snippet that shows how to extend Mouse (lightweight version of Moose) with Try::Tiny for better exception handling.

Here would be your application class:

package MyApp::Mouse;

use Mouse ();
use Mouse::Exporter;
use Try::Tiny;

Mouse::Exporter->setup_import_methods( 
	as_is => [qw[try catch finally]],
	also  => 'Mouse'
);

1;

Then you simply use MyApp::Mouse in place of the Mouse module for your classes:

package Foo;

use MyApp:::Mouse;

sub t {
	my ($self,$d) = @_;
	
	my $v = try {
		die "testing" if $d;
		'no';
	} catch {
		$_;
	}; 

	return $v;
}

1;

A simple test?

package Foo;

~$ perl -Mfeature=:5.12 -MFoo -e say Foo->new->t;
no

Of course this recipe works with Moose, simply replace the Mouse namespace with the Moose namespace and your in business.

3 comments:

  1. So, like.. are you with "Sara Mangus" because she looks like a dude and you're secretly gay?

    ReplyDelete
  2. WynnBET : Situs Slot Online | Casino Online Gambling
    WynnBET - Situs Slot Online WynnBet - Situs poormansguidetocasinogambling Slot Online WynnBet - Situs Slot Online 나비효과 WynnBet - Situs Slot apr casino Online septcasino WynnBet - Situs Slot Online WynnBet - Situs https://tricktactoe.com/ Slot Online

    ReplyDelete
  3. Casino Niagara features over 1,300 slot and video poker machines, together with more than 350 progressive slots, on two action-packed ranges. With most slots featuring a Return to Player of 92-96%, any video games with a Return to Player above 96% is an efficient choice. In terms of win-size, progressive slots are the slot machines that pay the best – however they are additionally those with the lowest successful odds. Finding a great casino bonus is crucial to play slots on-line – particularly need to|if you want to} get a small benefit. The commonest bonus sorts embody free spins, extra money that matches your deposit, and 1xbet special provides for recurring gamers. The volatility of a slot machine recreation measures the risk involved in taking part in} a specific slot for real money.

    ReplyDelete