Defensive programming constructs have prevented many a defect, but the constructs themselves tend to litter code with repetitive logic. Combining defensive programming techniques with aspect-oriented programming is one way to keep the strong line of defense without all the repetitive coding. This article provides a multifaceted approach using the power of AOP, design by contract, and a handy library called OVal.