
Exception::class::trycatch provides syntactic sugar for use with exception::class using the familiar keywords try and catch. its primary objective is to allow users to avoid dealing directly with $@ by ensuring that any exceptions caught in an eval are captured as exception::class objects, whether they were thrown objects to begin with or whether the error resulted from die. this means that users may immediately use isa and various exception::class methods to process the exception.
in addition, this module provides for a method to push errors onto a hidden error stack immediately after an eval so that cleanup code or other error handling may also call eval without the original error in $@ being lost.