Avoiding confusion with exception handling in aspect-oriented programming

Exception-related aspects may inadvertently alter the exception flow paths in a program: a base handler may capture an exception thrown by advice, as seen in Figure 1(a). Also the dual situation can occur, as shown in Figure 1(b). Listing 1 shows the AspectJ code associated to the problem shown in Figure 1(a): method foo calls getConfiguration to obtain a configuration parameter. foo installs a handler to set a default value