Die Methoden intValue(), longValue() der Klasse BigInteger (und shortValue(), was aus BigInteger aus Number erbt) liefen ein int/long/short des repräsentierten Werteobjekts, jedoch ist nicht zwingend, dass die Werte in den Datentyp int/long/short passen; falls nicht, werden sie einfach wie bei einer expliziten Typanpassung abgeschnitten. Die in Java 8 eingeführten Methoden intValueExact(), longValueExact() und shortValueExact() lösen eine ArithmeticException aus, falls der vom BigInteger repräsentierte Wert nicht ohne Verlust in den primitiven Datentyp passt.
http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/2a8072c7cf99