Blame Changes

Packit 485bc7
1.44    2017-12-10
Packit 485bc7
Packit 485bc7
- You can now pass "frame_filter", "filter_frames_early", and "skip_frames" to
Packit 485bc7
  the throw() method of an exception class. These will be passed on to the
Packit 485bc7
  Devel::StackTrace constructor. Requested by Frédéric Brière. GH #6.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.43    2017-07-09
Packit 485bc7
Packit 485bc7
- The full_message() method in Exception::Class::Base now calls message()
Packit 485bc7
  instead of accessing the object's hash key. This makes it easier to override
Packit 485bc7
  message() in a subclass. Patch by Alexander Batyrshin. PR #11.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.42    2017-01-04
Packit 485bc7
Packit 485bc7
- Generated exception classes are now added to %INC. If you subclass a
Packit 485bc7
  generated class with "use base" then base.pm will no longer attempt to load
Packit 485bc7
  the requested class. Patch by Todd Rinaldo. PR #8.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.41    2016-12-07
Packit 485bc7
Packit 485bc7
- Switch to GitHub Issues.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.40    2016-01-29
Packit 485bc7
Packit 485bc7
- Fixed broken metadata. Reported by Slaven Rezić. GitHub #3.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.39    2014-11-01
Packit 485bc7
Packit 485bc7
- Replaced the Exception::Class::Base->NoRefs method with UnsafeRefCapture to
Packit 485bc7
  match changes in Devel::StackTrace 2.00. The old method is deprecated but
Packit 485bc7
  will continue to work.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.38    2014-05-05
Packit 485bc7
Packit 485bc7
- An exception without a message will now default to either the associated
Packit 485bc7
  exception class description or the string "[Generic exception]". Patch by
Packit 485bc7
  Ricardo Signes. PR #2.
Packit 485bc7
Packit 485bc7
- Added field_hash() and context_hash() methods. Patch by Ricardo Signes. PR
Packit 485bc7
  #1.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.37    2013-02-24
Packit 485bc7
Packit 485bc7
- I now recommend you use Throwable instead of this module. It has a nicer,
Packit 485bc7
  more modern interface.
Packit 485bc7
Packit 485bc7
- Fixed various bugs and confusion in the docs.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.36    2012-11-17
Packit 485bc7
Packit 485bc7
- Fixed some stupidity in the tests that appears to have been highlighted by
Packit 485bc7
  recent changes to Devel::StackTrace. Reported by Dan Horne. RT #81245.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.35    2012-09-17
Packit 485bc7
Packit 485bc7
- Require Class::Data::Inheritable 0.02+.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.34    2012-09-16
Packit 485bc7
Packit 485bc7
- 1.33 did not declare any prereqs. Oops. Reported by Roham McGovern. RT
Packit 485bc7
  #79677.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.33    2012-09-16
Packit 485bc7
Packit 485bc7
- Fixed warning from basic.t on 5.17.x. RT #79121.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.32    2010-06-28
Packit 485bc7
Packit 485bc7
- Removed Test::Most dependency, which was causing a circular dependency
Packit 485bc7
  chain. Reported by Burak Gursoy. RT #58889.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.31    2010-06-26
Packit 485bc7
Packit 485bc7
- Made it possible to use Exception::Class::Base without loading
Packit 485bc7
  Exception::Class. Reported by Alex Peters. RT #57269.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.30    2010-03-20
Packit 485bc7
Packit 485bc7
- Added the ability to create light weight exceptions, which don't record a
Packit 485bc7
  stack trace or any other context info (time, pid, etc.). This is done by
Packit 485bc7
  setting $class->NoContextInfo to a true value for the exception class. Based
Packit 485bc7
  on a patch by Graham Barr. RT #54826.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.29    2009-05-08
Packit 485bc7
Packit 485bc7
- Make sure that there is only one line that the toolchain can pick up
Packit 485bc7
  when looking for this module's $VERSION.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.28    2009-05-06
Packit 485bc7
Packit 485bc7
* Removed Exception::Class::Base->do_trace and ->NoObjectRefs, both of
Packit 485bc7
  which have been undocumented for many years.
Packit 485bc7
Packit 485bc7
- Moved Exception::Class::Base to its own file, so it doesn't
Packit 485bc7
  overwrite the $VERSION in Exception::Class (and for general
Packit 485bc7
  sanity). Reported by Kirk Baucom.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.27    2009-05-04
Packit 485bc7
Packit 485bc7
* The error message for an exception no longer defaults to $!. This
Packit 485bc7
  was a bad idea, and has bitten some people. Addresses RT #43600.
Packit 485bc7
Packit 485bc7
* I'm now only supporting Perl 5.8.1+. This module broke on 5.6.2 (and
Packit 485bc7
  5.8.0) at some point and I don't really care enough to fix
Packit 485bc7
  it. Non-intrusive patches to make it work on 5.8.0 or less (again)
Packit 485bc7
  will be accepted.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.26    2008-10-25
Packit 485bc7
Packit 485bc7
- No code changes, just bumped the Devel::StackTrace dependency to
Packit 485bc7
  1.20.
Packit 485bc7
Packit 485bc7
  The changes in 1.25 exposed a bug in Devel::StackTrace which has now
Packit 485bc7
  been fixed. This caused HTML::Mason test failures, among other
Packit 485bc7
  things. Reported by Andreas Koenig.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.25    2008-10-21
Packit 485bc7
Packit 485bc7
- The Exception::Class::Base constructor no longer looks at the
Packit 485bc7
  associated Devel::StackTrace object's frames. Avoiding looking at
Packit 485bc7
  the frames should make constructing exception objects much
Packit 485bc7
  faster. Instead the information based on the stack trace frames -
Packit 485bc7
  package(), file(), and line() - is only retrieved when it is
Packit 485bc7
  requested. Patch by Ruslan Zakirov. RT #40221.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.24    2008-03-30
Packit 485bc7
Packit 485bc7
- Added a MaxArgLength class parameter to go along with the new
Packit 485bc7
  max_arg_length constructor param for Devel::StackTrace
Packit 485bc7
  objects. Patch by Ian Burrell.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.23    2006-01-14
Packit 485bc7
Packit 485bc7
- Fix code bugs in the SYNOPSIS.
Packit 485bc7
Packit 485bc7
- Exception::Class->caught() now returns $@ if not given an argument.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.22    2005-09-30
Packit 485bc7
Packit 485bc7
- Added Exception::Class::Base->caught() so you can write
Packit 485bc7
  "My::Error->caught()".  Apparently this is what Damian documented in
Packit 485bc7
  Perl Best Practices.  Thanks to JD Hedden for pointing this out.
Packit 485bc7
Packit 485bc7
- Require Devel::StackTrace 1.12 to fix a test failure on Win32.
Packit 485bc7
  Reported by Garrett Goebel.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.21    2005-04-17
Packit 485bc7
Packit 485bc7
- Added Exception::Class->caught() as syntactic sugar for catching
Packit 485bc7
  exceptions in a "safe" manner.  See the docs for details.  Suggested
Packit 485bc7
  by Damian Conway.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.20    2005-01-01
Packit 485bc7
Packit 485bc7
- Moved the Classes() method to Exception::Class, now as a function,
Packit 485bc7
  which is where it really belongs.  Also corrected the docs for this
Packit 485bc7
  function, as they incorrectly implied that it would return all
Packit 485bc7
  subclasses, instead of just subclasses which were created when
Packit 485bc7
  loading Exception::Class.
Packit 485bc7
Packit 485bc7
- Added a Build.PL file, and releases are now signed with
Packit 485bc7
  Module::Signature.
Packit 485bc7
Packit 485bc7
- Added ignore_class and ignore_package constructor parameters.  Patch
Packit 485bc7
  by Daisuke Maki.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.19    2004-03-10
Packit 485bc7
Packit 485bc7
- Identical to 1.18 except that it requires Devel::StackTrace 1.10,
Packit 485bc7
  which fixes a failure in this package's test when run with Perl
Packit 485bc7
  5.6.1.  Reported by Jesse Erlbaum.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.18    2004-02-21
Packit 485bc7
Packit 485bc7
- Added RespectOverload class method, which can be used to control the
Packit 485bc7
  respect_overload parameter for Devel::StackTrace objects.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.17    2004-02-20
Packit 485bc7
Packit 485bc7
- Document that new() is always called to create an
Packit 485bc7
  Exception::Class::Base object.  Suggested by Steve Hay.
Packit 485bc7
Packit 485bc7
- Fix a test that failed with Devel::StackTrace 1.05.  Basically, the
Packit 485bc7
  test expected output from Devel::StackTrace that reflected a bug
Packit 485bc7
  that was fixed in 1.05.  Reported by Jesse Vincent.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.16    2003-09-25
Packit 485bc7
Packit 485bc7
- David Wheeler's patch exposed a bug in Devel::StackTrace which could
Packit 485bc7
  cause exceptions to not have any value set for package, file, or
Packit 485bc7
  line.  This is fixed by depending on Devel::StackTrace 1.04.  This
Packit 485bc7
  release is otherwise identical to 1.15.  Reported by Steve Hay.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.15    2003-09-17
Packit 485bc7
Packit 485bc7
- Exceptions thrown from an alias subroutine always had
Packit 485bc7
  "Exception::Class" as their package name.  Patch by David Wheeler.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.14    2003-07-04
Packit 485bc7
Packit 485bc7
- ** BACKWARDS INCOMPATIBILITY **
Packit 485bc7
  NoRefs is now true by default.  This means that stacktraces will
Packit 485bc7
  _not_ store references unless you explicitly set NoRefs to a false
Packit 485bc7
  value.  This is done because it's too easy to leak memory when
Packit 485bc7
  references are saved in stack traces.
Packit 485bc7
Packit 485bc7
- Fixed a very odd bug where Exception::Class could mistakenly think
Packit 485bc7
  that an exception class had been created when it really hadn't.
Packit 485bc7
  This was only exposed with bleadperl (5.8.1-to-be), and is unlikely
Packit 485bc7
  to affect anyone using an existing Perl version.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.13    2003-06-21
Packit 485bc7
Packit 485bc7
- Documented the Exception::Class::Base->Fields method, which can be
Packit 485bc7
  called on subclasses to determine what extra fields they have
Packit 485bc7
  defined.  Suggested by Chris Winters.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.12    2003-04-03
Packit 485bc7
Packit 485bc7
- Added the Exception::Class::Base->Classes method.  Patch by David
Packit 485bc7
  Wheeler.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.11    2003-02-20
Packit 485bc7
Packit 485bc7
- A description containing a single quote or backslash would cause a
Packit 485bc7
  syntax error in the code generated by Exception::Class.  Patch by
Packit 485bc7
  Luc St-Louis.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.10    2003-01-28
Packit 485bc7
Packit 485bc7
- The alias feature had a bug that showed up when an alias was
Packit 485bc7
  assigned to a class whose parent had not yet been made.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.09    2003-01-22
Packit 485bc7
Packit 485bc7
- Tweak to Fields method so that it returns empty list for 5.6.1 and
Packit 485bc7
  5.00503.
Packit 485bc7
Packit 485bc7
- Require Devel::StackTrace 1.03 to fix potential recursion problem
Packit 485bc7
  between the two classes when stringifying exceptions.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.08    2003-01-21
Packit 485bc7
Packit 485bc7
- Added "alias" feature, which allows you to create a subroutine that
Packit 485bc7
  throws a specified exception.  This is based on code created by Ken
Packit 485bc7
  Williams for Mason.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.07    2002-09-19
Packit 485bc7
Packit 485bc7
- Forgot to require Devel::StackTrace 1.01.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.06    2002-09-19
Packit 485bc7
Packit 485bc7
- Use File::Spec when testing file method so that test 7 passes on all
Packit 485bc7
  platforms.  Reported by Ron Savage.
Packit 485bc7
Packit 485bc7
- Use Test::More for test suite.
Packit 485bc7
Packit 485bc7
- Change NoObjectRefs method to NoRefs, to match change in
Packit 485bc7
  Devel::StackTrace 1.01.  The old method is deprecated, but will
Packit 485bc7
  continue to work.  However, it now _means_ the same thing as NoRefs.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.05    2002-08-23
Packit 485bc7
Packit 485bc7
- Add NoObjectRefs class method to prevent Devel::StackTrace from
Packit 485bc7
  holding onto objects internally, thus delaying destruction.  Based
Packit 485bc7
  on a discussion with Tatsuhiko Miyagawa.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.04    2002-08-22
Packit 485bc7
Packit 485bc7
- Fix messed up tarball as reported by Tatsuhiko Miyagawa.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.03    2002-08-21
Packit 485bc7
Packit 485bc7
- Some versions of Perl may give an error about "Ambiguous call
Packit 485bc7
  resolved as CORE::time()".  This should be fixed now.  Reported by
Packit 485bc7
  Ron Savage.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.02    2002-08-20
Packit 485bc7
Packit 485bc7
- Fields set in a parent class were not actually being inherited by
Packit 485bc7
  children.  Patch (with tests!) by David Wheeler.
Packit 485bc7
Packit 485bc7
- Allow a single argument (error/message) to the constructor.  Patch
Packit 485bc7
  by Tatsuhiko Miyagawa.
Packit 485bc7
Packit 485bc7
- General doc cleanup.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.01    2002-05-23
Packit 485bc7
Packit 485bc7
- Make sure that exception objects always test as true in a boolean
Packit 485bc7
  context.
Packit 485bc7
Packit 485bc7
Packit 485bc7
1.00    2002-03-08
Packit 485bc7
Packit 485bc7
- Added a full_message method intended to be overridden when you
Packit 485bc7
  create a subclass that uses fields that you want included in the
Packit 485bc7
  stringification of the object.  Suggested by Jon Swartz.
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.99    2002-03-06
Packit 485bc7
Packit 485bc7
- The much-requested "arbitrary attributes" feature has been added.
Packit 485bc7
  Thanks to Jon Swartz for the patch.  You can now do this:
Packit 485bc7
Packit 485bc7
  use Exception::Class ( 'My::Exception' => { fields => [ 'bar', 'baz' ] } );
Packit 485bc7
Packit 485bc7
  ...
Packit 485bc7
Packit 485bc7
  if ( UNIVERSAL::isa( $@, 'My::Exception' ) { print $@->bar, $@->baz; }
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.98    2002-02-20
Packit 485bc7
Packit 485bc7
- Subclasses that overrode the ->as_string method had to repeat the
Packit 485bc7
  stringification overloading for exception objects.  This has been
Packit 485bc7
  changed so that the stringification overloading is now
Packit 485bc7
Packit 485bc7
  sub { $_[0]->as_string }
Packit 485bc7
Packit 485bc7
  Suggested by Jon Swartz.
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.97    2001-11-25
Packit 485bc7
Packit 485bc7
- Incorporated a patch from Ken Williams that works around several
Packit 485bc7
  Perl 5.6.0 bugs.
Packit 485bc7
Packit 485bc7
- Test 31 was explicitly different for 5.6.0.  Ken said that the
Packit 485bc7
  difference actually made it fail (whereas in the past for me it
Packit 485bc7
  succeeded).  Tweak this test a bit more to just be more flexible
Packit 485bc7
  under 5.6.0.
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.96    2001-11-23
Packit 485bc7
Packit 485bc7
- Changes wasn't in MANIFEST.  Oops.
Packit 485bc7
Packit 485bc7
- Doc tweaks and cleanup of README.
Packit 485bc7
Packit 485bc7
- Make do_trace a synonym to Trace for backwards compatibility.
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.95    2001-11-22
Packit 485bc7
Packit 485bc7
  ** INCOMPATIBLE CHANGES IN THIS RELEASE **
Packit 485bc7
Packit 485bc7
- Remove do_trace method and replace it with Trace method, which is
Packit 485bc7
  inherited by subclasses.
Packit 485bc7
Packit 485bc7
- Exception object now always have a Devel::StackTrace object
Packit 485bc7
  available.  The Trace method only determines whether or not it is
Packit 485bc7
  included when the exception is stringified.
Packit 485bc7
Packit 485bc7
- A new parameter show_trace for throw which allows you to override
Packit 485bc7
  the value of Trace on a case by case basis.
Packit 485bc7
Packit 485bc7
- Fix uninit value warning with 5.00503.
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.90    2001-10-23
Packit 485bc7
Packit 485bc7
- fix buglet reported by Terrence Brannon that could occur while
Packit 485bc7
  trying to figure out where the exception was thrown, if the
Packit 485bc7
  exception was thrown from the package that the exception is an
Packit 485bc7
  object of.
Packit 485bc7
Packit 485bc7
- doc improvements suggested Nathaniel Smith (related to using
Packit 485bc7
  Error.pm) and Mark Stosberg.
Packit 485bc7
  
Packit 485bc7
Packit 485bc7
0.85    Unknown Release Date
Packit 485bc7
Packit 485bc7
- added ability to use message instead of error as hash key to
Packit 485bc7
  constructor.
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.8     2000-09-03
Packit 485bc7
Packit 485bc7
- changed object from psuedo-hash to regular hash
Packit 485bc7
Packit 485bc7
- added package, file, & line methods to exception object.
Packit 485bc7
Packit 485bc7
- added more tests for exception object accessors
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.7     2000-09-03
Packit 485bc7
Packit 485bc7
- hack in test.pl to allow tests to pass under 5.6.0.
Packit 485bc7
Packit 485bc7
- README details various Perl bugs this module (along with
Packit 485bc7
  Devel::StackTrace) can expose and some possible workarounds.
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.6     2000-06-27
Packit 485bc7
Packit 485bc7
- renamed to Exception::Class
Packit 485bc7
Packit 485bc7
Packit 485bc7
0.5     2000-06-26
Packit 485bc7
Packit 485bc7
- Initial release, as Class::Exceptions.