Blast-Radius Aware AI Code Review for Business-Critical Systems
LiveReview LiveReview Explore LiveReview

Aspect::Advice::After - Execute code after a function is called

Authors

       Adam Kennedy <adamk@cpan.org>

Description

       The "after" advice type is used to execute code after a function is called, regardless of whether or not
       the function returned normally or threw an exception.

       The "after" advice type should be used when you need to potentially make multiple different changes to
       the returned value or the thrown exception.

       If you only care about normally returned values you should use "returning" in the pointcut to exclude
       join points occuring due to exceptions.

       If you only care about handling exceptions you should use "throwing" in the pointcut to exclude join
       points occuring due to normal return.

Name

       Aspect::Advice::After - Execute code after a function is called

Synopsis

         use Aspect;

         after {
             # Trace all returning calls to your module
             print STDERR "Called my function " . $_->sub_name . "\n";

             # Suppress exceptions AND alter the results to foo()
             if ( $_->short_name eq 'foo' ) {
                 if ( $_->exception ) {
                     $_->return_value(1);
                 } else {
                     $_->return_value( $_->return_value + 1 );
                 }
             }

         } call qr/^ MyModule::\w+ $/

See Also