プログラミング

[Java]オーバーフローを検知するMathメソッド

Math.◯◯Exact

たまにオーバーフローを検知したいときがあります。愚直にif文で検知することもできるのですが、Javaには計算結果がオーバーフローするときにちゃんと例外を投げてくれるメソッドがあります。

  • addExact
  • decrementExact
  • incremantExact
  • subtractExact
  • multiplyExact
  • negateExact
  • toIntExact

機能は名前を読めばだいたいわかると思います。詳細は参考。これらの関数を用いて計算して結果がオーバーフローしたときはArithmeticExceptionというRuntimeExceptionを継承した例外クラスを投げてくれます。

オーバーフローしたときは0を返すだけでいいよ、みたいなときにtry-catchでくくって使えるとクールですね。

参考

Math(Java Platform SE 8)