./wip/p5-Exception-Base, Exception::Base

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 0.2501, Package name: p5-Exception-Base-0.2501, Maintainer: ggm

lightweight exception mechanism, cheaper than Exception::Class

http://search.cpan.org/src/DEXTER/Exception-Base-0.13/README


Required to run:
[lang/perl5]

Required to build:
[pkgtools/cwrappers]

Master sites: (Expand)

RMD160: 2602f4e3288a42c47ea0f50c5c9f2c1bec2f124c
Filesize: 58.56 KB

Version history: (Expand)


CVS history: (Expand)


   2013-05-15 08:01:25 by Hiramatsu Yoshifumi | Files touched by this commit (2)
Log message:
Update p5-Exception-Base to 0.2401.

Changes from previous:

------------------------------------------------------------------------
0.2401 | Piotr Roszatycki <dexter@cpan.org> | 2010-09-30

Fixes:

* Builds on Perl 5.13.4 with (?^...) regex construct.

------------------------------------------------------------------------
0.24 | Piotr Roszatycki <dexter@cpan.org> | 2009-12-13

New:

* Setting the default value via exception class makes changes only for this
  class.  It is possible to redefine the default verbosity for i.e.
  Exception::Died class and it won't change the default verbosity for
  Exception::Base. 

------------------------------------------------------------------------
0.23 | Piotr Roszatycki <dexter@cpan.org> | 2009-10-20

New:

* Method "catch" has optional argument.  It recovers an exception from this
  argument or from "$@" variable by default.

------------------------------------------------------------------------
0.2202 | Piotr Roszatycki <dexter@cpan.org> | 2009-08-13

Fixes:

* The smart matching operator "~~" requires second argument to be a \ 
scalar for
  Perl >= 5.10.1.

------------------------------------------------------------------------
0.2201 | Piotr Roszatycki <dexter@debian.org> | 2009-04-02

Fixes:

* Method "match" works correctly if attribute contains ArrayRef.

Changes:

* POD is mixed with rest of code.

------------------------------------------------------------------------
0.22 | Piotr Roszatycki <dexter@debian.org> | 2009-03-24

New:

* sprintf is used if "message" attribute is an array reference.

  Exception::Base->throw( message => ['Failed in %s', __PACKAGE__] );

Changes:

* Build requires Test::Unit::Lite 0.21.

------------------------------------------------------------------------
0.21 | Piotr Roszatycki <dexter@debian.org> | 2008-12-08

Fixes:

* Skip ignored packages for verbosity level 2.

* Verbosity level can not be changed.  Reset internal cache with classes
  defaults after the default value was changed.

Changes:

* Method "import" was refactored.

------------------------------------------------------------------------
0.20 | Piotr Roszatycki <dexter@debian.org> | 2008-12-05

New:

* Major API changes.

* New methods to_number/to_string replaced numerify/stringify.

* New method get_caller_stacktrace replaced _caller_backtrace.

* New method: to_bool.

* New internal function qualify_to_ref() which uses Symbol module if it is
  possible.

* Read-only attributes can be defined with pragma interface.

Removed:

* Removed methods: try, with.

* Removed export of try/catch/throw methods and :all tag.

Changes:

* Reference arguments stored as caller_stack are weakened if it is possible.

* catch method takes no arguments.

------------------------------------------------------------------------
0.1901 | Piotr Roszatycki <dexter@debian.org> | 2008-10-13

Fixes:

* Some warnings disabled.

* Added missing test file to manifest.

* Some POD errors fixed.

Changes:

* Updated bundled Test::Unit::Lite to 0.1002.

------------------------------------------------------------------------
0.19 | Piotr Roszatycki <dexter@debian.org> | 2008-10-08

Fixes:

* Don't create package if it is loaded correcly.

Changes:

* Cleaned up "with" method.

* Updated bundled Test::Unit::Lite to 0.1001.

------------------------------------------------------------------------
0.18 | Piotr Roszatycki <dexter@debian.org> | 2008-10-08

New:

* New method "matches" and overloaded operator "~~" are \ 
similar to
  "with" method and can be used with new "given" syntax.

  eval { Exception::Base->throw( message => "foo" ) };
  if ($@) {
    my $e = Exception::Base->catch;
    given ($e) {
      when ({ message => "foo" }) { warn "has a foo \ 
message"; }
      when ("Exception::Base")    { warn "is an \ 
Exception::Base"; }
    }
  }

* The exception class can be created with "import" interface in own \ 
package.

  package Exception::My;
  use Exception::Base (__PACKAGE__) =>
    'has' => 'myattr',
  };

* New attribute "stringify_attributes" defines attributes which create
  string returned by stringify method.

  use Exception::Base 'Exception::WithReason' =>
    'has' => 'reason',
    stringify_attributes => ['message', 'reason'],
  };
  eval { Exception::WithReason->(
    message => "My message",
    reason  => "My reason",
  );
  print $@->stringify;  # "My message: My reason"

* The default value for new attribute defined with "has" keyword with \ 
"import"
  interface can be set in the same statement.

  use Exception::Base 'Exception::WithDefaultValue' =>
    'has' => 'value',
    'value' => 'Default value',
  };

Changes:

* The "with" and "try" methods return empty string instead \ 
"0" as false
  value.

* Removed private methods "__stringify" and "__numerify". \ 
The methods
  "stringify" and "numerify" overloads \ 
"q{""}" and "0+" operators.

* New meta-attribute "numeric_attribute" which contains the name of \ 
attribute
  which represents exception object in numeric context.

* New constant RE_NUM_IN.

* Updated bundled Test::Unit::Lite to 0.10.

------------------------------------------------------------------------
0.1702 | Piotr Roszatycki <dexter@debian.org> | 2008-05-28

Fixed:

* Fix some "undefined value" warning.

------------------------------------------------------------------------
0.1701 | Piotr Roszatycki <dexter@debian.org> | 2008-05-12

* Corrected documentation.

------------------------------------------------------------------------
0.17 | Piotr Roszatycki <dexter@debian.org> | 2008-05-11

Incompatibilities:

* The "catch" method doesn't rethrow a caught exception.  The reference to
  array is no longer an argument for the method.  The class name means that
  caught non-exception will be converted to this class.

New:

* The "with" method supports "-isa" and "-has" \ 
keyword. Value can be a
  reference to array which means any value matches.

Changes:

* Show full propagated stack for verbosity = 4.
* The "with" method matches the default_attribute if one argument is given.

------------------------------------------------------------------------
0.16 | Piotr Roszatycki <dexter@debian.org> | 2008-05-07

Incompatibilites:

* The FIELD constant was renamed to ATTRS as far as every OO language calls it
  attributes.  All derived classes should use ATTRS constant instead of FIELD
  constant.
* An unknown attribute will be ignored instead to be part of properties
  attribute.  You can create additional exception class which supports these
  attributes.
* Removed eval_error attribute.  If the error stack is empty, the catch method
  recover $@ variable into attribute pointed by eval_attribute.
* The catch method returns $@ variable if error stack is empty.
* The _stringify private method renamed to __stringify.  It might be important
  for derived classes which overloads q{""}.

New:

* New attribute value which can contain numeric value.
* The exception object can be used in bool, numeric or string context.  The
  bool value is always true.  The numeric value returns the content of value
  attribute.

Changes:

* The default verbosity for stringification of exception object is 0.
* The _stringify private method was renamed to __stringify.
* The try method clears $@ variable.
* If throw method is called with one argument, its value is stored in
  attribute pointed by default_attribute.

Fixes:

* Support for threads module.

------------------------------------------------------------------------
0.15 | Piotr Roszatycki <dexter@debian.org> | 2008-04-19

New:

* throw() method is exported with ":all" tag.  It can break the code which
  uses indirect notation.

Changes:

* Drop indirect notation is POD and code.

------------------------------------------------------------------------
0.14 | Piotr Roszatycki <dexter@debian.org> | 2008-04-13

New:

* New verbosity level 4. Always dumps full stack trace. The ignore_package and
  ignore_level has meaning only for first line of the error message.
* New field ignore_class which filters stack trace.
* New syntax for import. The default values (verbosity, message, ignore_*,
  ...) can be replaced or changed based on previous value.
* Show package in stack trace.

Changes:

* Updated bundled Test::Unit::Lite to 0.0903.
   2012-10-04 12:45:25 by Aleksej Saushev | Files touched by this commit (38)
Log message:
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
Mark packages that don't or might probably not have staged installation.
   2008-05-30 14:22:03 by abs | Files touched by this commit (102)
Log message:
Remove unnecessary (empty) PLIST files for p5-* packages
   2008-05-24 17:34:08 by Tobias Nygren | Files touched by this commit (146)
Log message:
This commit brought to you by the automated whitespace police (pkglint)
   2007-11-22 01:59:25 by George Michaelson | Files touched by this commit (4) | Imported package
Log message:
lightweight exception mechanism, cheaper than Exception::Class

http://search.cpan.org/src/DEXTER/Exception-Base-0.13/README