[aspectc-user] Throw exception

Daniel Lohmann daniel.lohmann at informatik.uni-erlangen.de
Tue Feb 19 09:14:28 CET 2008


On 18.02.2008, at 11:00, Dima S wrote:

> Hello all,
>
> I want to have a pointcut for throwing C++ exception.
> I have the following code:
> class MyExc
> {
> public:
>   MyExc();
> };
> MyExc::MyExc()
> {
> }
>
> class bobo
> {
> public:
> int bobo::bla( int d )
> {
>   if( d == 0 )
>   {
>      throw MyExc();
>   }
>
>   return d * d;
> }
>
> I define the following pointcut:
>   pointcut exception() = call( "%throw%" );
> and corresponding advice:
>       advice exception(): before ()
>       {
>          printf( "\tException is thrown here!");
>       }
>
> However it does not work.
> Any idea what i should do to get correct advice/pointcut?

Hi Dima,

AspectC++ currently does not support giving advice to throw statements.

If the code throwing the exceptions is under your control, you might  
consider delegating the throw to an extra (inline)-function and give  
advice to this function.

Daniel



More information about the aspectc-user mailing list