NAME

Venus::Role::Throwable - Throwable Role

ABSTRACT

Throwable Role for Perl 5

SYNOPSIS

package Example;

use Venus::Class;

with 'Venus::Role::Throwable';

package main;

my $example = Example->new;

# $example->throw;

DESCRIPTION

This package modifies the consuming package and provides a mechanism for throwing context-aware errors (exceptions).

METHODS

This package provides the following methods:

throw

throw(Maybe[Str | HashRef] $data) (Throw)

The throw method builds a Venus::Throw object, which can raise errors (exceptions).

Since 0.01

throw example 1
package main;

my $example = Example->new;

my $throw = $example->throw;

# bless({ "package" => "Example::Error", ..., }, "Venus::Throw")

# $throw->error;
throw example 2
package main;

my $example = Example->new;

my $throw = $example->throw('Example::Error::Unknown');

# bless({ "package" => "Example::Error::Unknown", ..., }, "Venus::Throw")

# $throw->error;
throw example 3
package main;

my $example = Example->new;

my $throw = $example->throw({
  name => 'on.example',
  capture => [$example],
  stash => {
    time => time,
  },
});

# bless({ "package" => "Example::Error", ..., }, "Venus::Throw")

# $throw->error;

AUTHORS

Awncorp, awncorp@cpan.org

LICENSE

Copyright (C) 2000, Al Newkirk.

This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.