Testing a condition before a calculation keeps invalid input from reaching the risky line.

Precondition Check

PreconditionCheck.java
public class PreconditionCheck {
    public static void main(String[] args) {
        int divisor = ;
        boolean valid = divisor != 0;

        if (valid) {
            int quotient = 40 / divisor;
            System.out.println("valid=" + valid + " quotient=" + quotient);
        } else {
            System.out.println("valid=" + valid + " quotient=skipped");
        }
    }
}
public class PreconditionCheck {
    public static void main(String[] args) {
        int divisor = ;
        boolean valid = divisor != 0;

        if (valid) {
            int quotient = 40 / divisor;
            System.out.println("valid=" + valid + " quotient=" + quotient);
        } else {
            System.out.println("valid=" + valid + " quotient=skipped");
        }
    }
}
public class PreconditionCheck {
    public static void main(String[] args) {
        int divisor = ;
        boolean valid = divisor != 0;

        if (valid) {
            int quotient = 40 / divisor;
            System.out.println("valid=" + valid + " quotient=" + quotient);
        } else {
            System.out.println("valid=" + valid + " quotient=skipped");
        }
    }
}
precondition A precondition is a fact that must be true before the next operation is safe.
guarded calculation The guarded branch performs the calculation only when the input passes the check.