What are join points?
Join points are well-defined points in the execution of a program. Not every execution point is a join point: only those points that can be used in a disciplined and principled manner are. So, in AspectJ, the execution of a method call is a join point, but “the execution of the expression at line 37 in file Foo.java” is not. The rationale for restricting join points is similar to the rationale for restricting access to memory (pointers) or restricting control flow expressions (goto) in Java: programs are easier to understand, maintain and extend without the full power of the feature. AspectJ join points include reading or writing a field; calling or executing an exception handler, method or constructor.