Join point
In Aspect-oriented programming, 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; See Go to statement considered harmful) in Java: programs are easier to understand, maintain and extend without the full power of the feature.