The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
1.23 Jan 14, 2006

- Fix code bugs in the SYNOPSIS.

- Exception::Class->caught() now returns $@ if not given an argument.


1.22 Sep 30, 2005

- Added Exception::Class::Base->caught() so you can write
"My::Error->caught()".  Apparently this is what Damian documented in
Perl Best Practices.  Thanks to JD Hedden for pointing this out.

- Require Devel::StackTrace 1.12 to fix a test failure on Win32.
Reported by Garrett Goebel.


1.21 Apr 17, 2005

- Added Exception::Class->caught() as syntactic sugar for catching
exceptions in a "safe" manner.  See the docs for details.  Suggested
by Damian Conway.


1.20 Jan 1, 2005

- Moved the Classes() method to Exception::Class, now as a function,
which is where it really belongs.  Also corrected the docs for this
function, as they incorrectly implied that it would return all
subclasses, instead of just subclasses which were created when loading
Exception::Class.

- Added a Build.PL file, and releases are now signed with
Module::Signature.

- Added ignore_class and ignore_package constructor parameters.  Patch
by Daisuke Maki.


1.19 Mar 10, 2004

- Identical to 1.18 except that it requires Devel::StackTrace 1.10,
which fixes a failure in this package's test when run with Perl 5.6.1.
Reported by Jesse Erlbaum.


1.18 Feb 21, 2004

- Added RespectOverload class method, which can be used to control the
respect_overload parameter for Devel::StackTrace objects.


1.17 Feb 20, 2004

- Document that new() is always called to create an
Exception::Class::Base object.  Suggested by Steve Hay.

- Fix a test that failed with Devel::StackTrace 1.05.  Basically, the
test expected output from Devel::StackTrace that reflected a bug that
was fixed in 1.05.  Reported by Jesse Vincent.


1.16 Sep 25, 2003

- David Wheeler's patch exposed a bug in Devel::StackTrace which could
cause exceptions to not have any value set for package, file, or line.
This is fixed by depending on Devel::StackTrace 1.04.  This release is
otherwise identical to 1.15.  Reported by Steve Hay.


1.15 Sep 17, 2003

- Exceptions thrown from an alias subroutine always had
"Exception::Class" as their package name.  Patch by David Wheeler.


1.14 Jul 04, 2003

- ** BACKWARDS INCOMPATIBILITY **
NoRefs is now true by default.  This means that stacktraces will _not_
store references unless you explicitly set NoRefs to a false value.
This is done because it's too easy to leak memory when references are
saved in stack traces.

- Fixed a very odd bug where Exception::Class could mistakenly think
that an exception class had been created when it really hadn't.  This
was only exposed with bleadperl (5.8.1-to-be), and is unlikely to
affect anyone using an existing Perl version.


1.13 Jun 21, 2003

- Documented the Exception::Class::Base->Fields method, which can be
called on subclasses to determine what extra fields they have defined.
Suggested by Chris Winters.


1.12 Apr 03, 2003

- Added the Exception::Class::Base->Classes method.  Patch by David
Wheeler.


1.11 Feb 20, 2003

- A description containing a single quote or backslash would cause a
syntax error in the code generated by Exception::Class.  Patch by Luc
St-Louis.


1.10 Jan 28, 2003

- The alias feature had a bug that showed up when an alias was
assigned to a class whose parent had not yet been made.


1.09 Jan 22, 2003

- Tweak to Fields method so that it returns empty list for 5.6.1 and
5.00503.

- Require Devel::StackTrace 1.03 to fix potential recursion problem
between the two classes when stringifying exceptions.


1.08 Jan 21, 2003

- Added "alias" feature, which allows you to create a subroutine that
throws a specified exception.  This is based on code created by Ken
Williams for Mason.


1.07 Sep 9, 2002

- Forgot to require Devel::StackTrace 1.01.


1.06 release date?

- Use File::Spec when testing file method so that test 7 passes on all
platforms.  Reported by Ron Savage.

- Use Test::More for test suite.

- Change NoObjectRefs method to NoRefs, to match change in
Devel::StackTrace 1.01.  The old method is deprecated, but will
continue to work.  However, it now _means_ the same thing as NoRefs.


1.05 Aug 23, 2002 (from Taiwan)

- Add NoObjectRefs class method to prevent Devel::StackTrace from
holding onto objects internally, thus delaying destruction.  Based on
a discussion with Tatsuhiko Miyagawa.


1.04 Aug 22, 2002 (from Taiwan)

- Fix messed up tarball as reported by Tatsuhiko Miyagawa.


1.03 Aug 21, 2002 (from Taiwan)

- Some versions of Perl may give an error about "Ambiguous call
resolved as CORE::time()".  This should be fixed now.  Reported by Ron
Savage.


1.02 Aug 20, 2002 (from Taiwan)

- Fields set in a parent class were not actually being inherited by
children.  Patch (with tests!) by David Wheeler.

- Allow a single argument (error/message) to the constructor.  Patch
by Tatsuhiko Miyagawa.

- General doc cleanup.


1.01 May 23, 2002

- Make sure that exception objects always test as true in a boolean
context.


1.00 Mar 8, 2002

- Added a full_message method intended to be overridden when you
create a subclass that uses fields that you want included in the
stringification of the object.  Suggested by Jon Swartz.


0.99 Mar 6, 2002

- The much-requested "arbitrary attributes" feature has been added.
Thanks to Jon Swartz for the patch.  You can now do this:

  use Exception::Class ( 'My::Exception' => { fields => [ 'bar', 'baz' ] } );

  ...

  if ( UNIVERSAL::isa( $@, 'My::Exception' ) { print $@->bar, $@->baz; }


0.98 Feb 20, 2002

- Subclasses that overrode the ->as_string method had to repeat the
stringification overloading for exception objects.  This has been
changed so that the stringification overloading is now

  sub { $_[0]->as_string }

Suggested by Jon Swartz.


0.97 Nov 25, 2001

- Incorporated a patch from Ken Williams that works around several
Perl 5.6.0 bugs.

- Test 31 was explicitly different for 5.6.0.  Ken said that the
difference actually made it fail (whereas in the past for me it
succeeded).  Tweak this test a bit more to just be more flexible under
5.6.0.


0.96 Nov 23, 2001

- Changes wasn't in MANIFEST.  Oops.

- Doc tweaks and cleanup of README.

- Make do_trace a synonym to Trace for backwards compatibility.


0.95 Nov 22, 2001

** INCOMPATIBLE CHANGES IN THIS RELEASE **

- Remove do_trace method and replace it with Trace method, which is
inherited by subclasses.

- Exception object now always have a Devel::StackTrace object
available.  The Trace method only determines whether or not it is
included when the exception is stringified.

- A new parameter show_trace for throw which allows you to override
the value of Trace on a case by case basis.

- Fix uninit value warning with 5.00503.


0.90 Oct 23, 2001

- fix buglet reported by Terrence Brannon that could occur while
trying to figure out where the exception was thrown, if the exception
was thrown from the package that the exception is an object of.

- doc improvements suggested Nathaniel Smith (related to using
Error.pm) and Mark Stosberg.


0.85

- added ability to use message instead of error as hash key to
constructor.


0.8 Sep 3, 2000

- changed object from psuedo-hash to regular hash

- added package, file, & line methods to exception object.

- added more tests for exception object accessors


0.7 Sep 3, 2000

- hack in test.pl to allow tests to pass under 5.6.0.

- README details various Perl bugs this module (along with
Devel::StackTrace) can expose and some possible workarounds.


0.6 Jun 27, 2000

- renamed to Exception::Class


0.5 Jun 26, 2000

Initial release, as Class::Exceptions.