ArithmeticException
日本語 | 算術例外 |
英語 | arithmetic exception |
ふりがな | ありすめてぃっくえくせぷしょん |
フリガナ | アリスメティックエクセプション |
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.lang.ArithmeticException。
例外の一種。
0での除算等、計算で問題が発生した場合に投げられる例外。通常の計算のほか、BigDecimalクラスでも投げられる。
RuntimeExceptionクラスのサブクラスであるため、明示的にcatchやthrows指定する必要はない。もしそうでなければ「割り算するたびに例外処理する必要がある」ため当然といえば当然である。
例外の一種。
0での除算等、計算で問題が発生した場合に投げられる例外。通常の計算のほか、BigDecimalクラスでも投げられる。
RuntimeExceptionクラスのサブクラスであるため、明示的にcatchやthrows指定する必要はない。もしそうでなければ「割り算するたびに例外処理する必要がある」ため当然といえば当然である。
参考サイト
// Sample.java
import java.math.BigDecimal;
public class Sample
{
public static void main( String[] args )
{
try
{
// 0で割ろうとするとArithmeticException例外が投げられます。
System.out.println( 3 / 0 );
}
catch( ArithmeticException e )
{
e.printStackTrace();
// java.lang.ArithmeticException: / by zero
// at Sample.main(Sample.java:9)
}
try
{
// BigDecimalクラスでも、0で割ると投げられます。
BigDecimal bigDecimal = new BigDecimal( "3" );
BigDecimal bigDecimalZero = new BigDecimal( "0" );
BigDecimal bigDecimalResult = null;
bigDecimalResult = bigDecimal.divide( bigDecimalZero, BigDecimal.ROUND_HALF_UP );
}
catch( ArithmeticException e )
{
e.printStackTrace();
// java.lang.ArithmeticException: BigInteger divide by zero
// at java.math.MutableBigInteger.divide(MutableBigInteger.java:780)
// at java.math.BigInteger.divideAndRemainder(BigInteger.java:1221)
// at java.math.BigDecimal.divide(BigDecimal.java:460)
// at java.math.BigDecimal.divide(BigDecimal.java:524)
// at Sample.main(Sample.java:26)
}
}
}
import java.math.BigDecimal;
public class Sample
{
public static void main( String[] args )
{
try
{
// 0で割ろうとするとArithmeticException例外が投げられます。
System.out.println( 3 / 0 );
}
catch( ArithmeticException e )
{
e.printStackTrace();
// java.lang.ArithmeticException: / by zero
// at Sample.main(Sample.java:9)
}
try
{
// BigDecimalクラスでも、0で割ると投げられます。
BigDecimal bigDecimal = new BigDecimal( "3" );
BigDecimal bigDecimalZero = new BigDecimal( "0" );
BigDecimal bigDecimalResult = null;
bigDecimalResult = bigDecimal.divide( bigDecimalZero, BigDecimal.ROUND_HALF_UP );
}
catch( ArithmeticException e )
{
e.printStackTrace();
// java.lang.ArithmeticException: BigInteger divide by zero
// at java.math.MutableBigInteger.divide(MutableBigInteger.java:780)
// at java.math.BigInteger.divideAndRemainder(BigInteger.java:1221)
// at java.math.BigDecimal.divide(BigDecimal.java:460)
// at java.math.BigDecimal.divide(BigDecimal.java:524)
// at Sample.main(Sample.java:26)
}
}
}
// Sample.java import java.math.BigDecimal; public class Sample { public static void main( String[] args ) { try { // 0で割ろうとするとArithmeticException例外が投げられます。 System.out.println( 3 / 0 ); } catch( ArithmeticException e ) { e.printStackTrace(); // java.lang.ArithmeticException: / by zero // at Sample.main(Sample.java:9) } try { // BigDecimalクラスでも、0で割ると投げられます。 BigDecimal bigDecimal = new BigDecimal( "3" ); BigDecimal bigDecimalZero = new BigDecimal( "0" ); BigDecimal bigDecimalResult = null; bigDecimalResult = bigDecimal.divide( bigDecimalZero, BigDecimal.ROUND_HALF_UP ); } catch( ArithmeticException e ) { e.printStackTrace(); // java.lang.ArithmeticException: BigInteger divide by zero // at java.math.MutableBigInteger.divide(MutableBigInteger.java:780) // at java.math.BigInteger.divideAndRemainder(BigInteger.java:1221) // at java.math.BigDecimal.divide(BigDecimal.java:460) // at java.math.BigDecimal.divide(BigDecimal.java:524) // at Sample.main(Sample.java:26) } } }