オーバーフローを検出したい場合

int型変数の計算の結果のオーバーフローを検出したい場合、Math#addExactメソッドを利用した以下の方法でできる。(Java8以降のみ)

try {
    int a = Integer.MAX_VALUE;
    int b = 1;

    // オーバーフローチェック
    int sum = Math.addExact(a, b);
} catch (ArithmeticException e) {
    // オーバーフローした場合
    e.printStackTrace();
}

もしくは、Math#toIntExactメソッドを利用した以下の方法でも可能。

try {
    int a = Integer.MAX_VALUE;
    int b = 1;

    // オーバーフローチェック
    int sum = Math.toIntExact((long)a + (long)b);
} catch (ArithmeticException e) {
    // オーバーフローした場合
    e.printStackTrace();
}