public class User { /*@ spec_public @*/ private int age; //@ public invariant 0 <= age && age < 150; //@ ensures age == 0; public User() { } /*@ public normal_behavior @ requires 0 <= newAge && newAge < 150; @ assignable age; @ ensures age == newAge; @ ensures \result == this; @ also @ public exceptional_behavior @ requires newAge < 0 || newAge >= 150; @ signals_only Exception; @*/ public User setAge(int newAge) throws Exception { if (newAge < 0 || newAge >= 150) { throw new Exception("Age out of bounds."); } this.age = newAge; return this; } }