【Java初心者向け】ArithmeticExceptionとは?エラーの意味・原因・解消方法

【Java初心者向け】ArithmeticExceptionとは?エラーの意味・原因・解消方法

本サイトでは、無料プログラミングスクール「アキバ・テックドリーム・アカデミー」(以下、テクドリ)の講師が、未経験者に向けてプログラミングの基礎を解説する記事を公開しています。

今回の記事テーマは「ArithmeticException」についての解説です。

目次

    「ArithmeticException」とは

    「ArithmeticException:アリスメティックエクセプション」とは、算術計算中に例外的な状況が発生した場合にスローされる例外です。

    例えば、

    • 「0」による除算を行った場合
    • 数値がデータ型の範囲を超えてしまった場合

    などに発生します。

    例外とは

    例外(Exception)については、下記の記事にて詳しく解説しています。併せてご参照ください。

    【初心者向け】例外・例外処理とは?Javaでの書き方も紹介! - TECH DREAM
    プログラミングを始めたばかりの方にとって、「例外」という言葉は少し難しく感じるか...
    tech-dream.school

    発生例・解消方法

    0で除算した場合

    値を0で除算した場合、ArithmeticExceptionが発生します。

    例外が発生するサンプルコード

    class Test {
      public static void main(String[] args) {
    
        //コマンドライン引数で受け取った値を数値変換
        int firstNum = Integer.parseInt(args[0]);
        int secoundNum = Integer.parseInt(args[1]);
    
        //除算して表示
        System.out.println(firstNum / secoundNum);
      }
    }
    
    実行結果
    C:\JAVA>java Test 100 10
    10
    
    C:\JAVA>java Test 100 0
    Exception in thread "main" java.lang.ArithmeticException: / by zero
            at Test.main(Test.java:9)
    

    解消例(例外処理を記述する場合)

    例外処理を記述します。

    class Test {
      public static void main(String[] args) {
    
        //コマンドライン引数で受け取った値を数値変換
        int firstNum = Integer.parseInt(args[0]);
        int secoundNum = Integer.parseInt(args[1]);
    
        try {
    
          //除算して表示
          System.out.println(firstNum / secoundNum);
    
        } catch (ArithmeticException e) {
          System.out.println("0で除算出来ません");
        }
      }
    }
    
    
    実行結果
    C:\JAVA>java Test 100 10
    10
    
    C:\JAVA>java Test 100 0
    0で除算出来ません
    

    解消例(分岐処理で回避する場合)

    分岐処理を使って、0以外が入力された場合のみ除算します。

    class Test {
      public static void main(String[] args) {
    
        //コマンドライン引数で受け取った値を数値変換
        int firstNum = Integer.parseInt(args[0]);
        int secoundNum = Integer.parseInt(args[1]);
    
        if (secoundNum != 0) {
    
          //除算して表示
          System.out.println(firstNum / secoundNum);
    
        } else {
    
          System.out.println("0で除算出来ません");
        }
      }
    }
    
    
    実行結果
    C:\JAVA>java Test 100 10
    10
    
    C:\JAVA>java Test 100 0
    0で除算出来ません

    「ArithmeticException」のまとめ

    今回は、「ArithmeticException」という例外について解説しました。

    「ArithmeticException」は、プログラムの中で算術計算に問題が発生したときにスローされる例外です。
    代表的な原因としては「0で割る」といった不正な計算が挙げられます。

    この例外が発生した場合は、該当する計算処理において誤りがないかを確認しましょう。

    公式「Oracle Help Center」でも詳しく解説されています。併せてご参照ください。

    まずは選考会へ!

    「プログラマーになって一緒に働きませんか?」
    テックドリームの選考会は、選考だけでなく「相互理解」の場。不安なことも直接ご相談いただけます。


    電話でのご予約

    Webかんたん予約ができない場合や、ご質問がございましたら、
    お気軽にお電話ください。

    0120-262-242
    9:00~18:00(土日祝を除く)

     

    >テクド・リム

    テクド・リム


    「テックドリーム」の公式キャラクター。
    プログラマーだった父の影響を受けて、
    夢に向かって日々勉強に励むプログラマーのタマゴ。
    夢は「世界を変える、すごいプログラマーになること!」

    CTR IMG