カテゴリ: Java 更新日: 2025/12/23
PR
独学でJavaを学んでいる方向け
「実務レベルに到達できるか不安」「1人だと詰まることが多い」場合は、 実践重視で学べる環境を一度確認しておくのも一つの手です。
EBAエデュケーション |学習内容・サポートを見る

JavaのArithmeticExceptionを完全解説!初心者でも理解できる算術エラー処理の基本

ArithmeticExceptionクラス
ArithmeticExceptionクラス

先生と生徒の会話形式で理解しよう

生徒

「Javaで数字を扱うときに突然エラーが出て止まってしまうことがあるんですが、どうすればいいんですか?」

先生

「それはArithmeticExceptionという算術演算で発生する例外かもしれません。特にゼロで割ろうとすると必ず起こりますよ。」

生徒

「ゼロで割るとエラーになるんですね。具体的にどうやって対処すればいいんですか?」

先生

「それでは、Javaのjava.langパッケージに含まれるArithmeticExceptionクラスについて基本から解説していきましょう。」

1. java.langパッケージとは

1. java.langパッケージとは
1. java.langパッケージとは

Javaのプログラムを書くときに欠かせないのがjava.langパッケージです。このパッケージにはStringMathObjectといった基本クラスが含まれており、開発者が特別にインポートしなくても自動で使えるようになっています。そのため初心者でも安心してプログラムを組める仕組みが整っています。

今回取り上げるArithmeticExceptionもこのjava.langに含まれており、数値演算中のエラーを表現する重要なクラスの一つです。

2. ArithmeticExceptionとは

2. ArithmeticExceptionとは
2. ArithmeticExceptionとは

ArithmeticExceptionはJavaの算術演算で発生する例外クラスです。特にゼロ除算、つまり割り算の分母にゼロを指定したときに自動的にスローされます。プログラムがこの例外に遭遇すると通常の処理は中断され、キャッチされない場合はエラーメッセージを表示して終了してしまいます。

数値演算を行うプログラムでは頻繁に発生する可能性があるため、必ず理解しておきたい基本的な例外です。

PR

将来を見据えて、+αのスキルを身につけたい方へ

JavaやLinuxを学んでいても、「このままで市場価値は上がるのか」 「キャリアの選択肢を広げたい」と感じる方は少なくありません。

AIを学ぶならアイデミープレミアム

3. ArithmeticExceptionが発生する例

3. ArithmeticExceptionが発生する例
3. ArithmeticExceptionが発生する例

まずは簡単なサンプルコードで、どのように例外が発生するかを確認してみましょう。


public class ArithmeticExceptionExample {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        int result = a / b; // ゼロ除算で例外発生
        System.out.println("計算結果: " + result);
    }
}

Exception in thread "main" java.lang.ArithmeticException: / by zero
    at ArithmeticExceptionExample.main(ArithmeticExceptionExample.java:6)

このように、ゼロで割った瞬間にArithmeticExceptionが発生し、プログラムは強制終了してしまいます。これを防ぐためには例外処理が必要になります。

4. ArithmeticExceptionをtry-catchで処理する

4. ArithmeticExceptionをtry-catchで処理する
4. ArithmeticExceptionをtry-catchで処理する

Javaではtry-catch構文を使うことで、例外が発生してもプログラムを停止させずに処理を続けることができます。次の例を見てみましょう。


public class HandleArithmeticException {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        try {
            int result = a / b;
            System.out.println("計算結果: " + result);
        } catch (ArithmeticException e) {
            System.out.println("算術エラーが発生しました: " + e.getMessage());
        }
        System.out.println("処理は継続されます。");
    }
}

算術エラーが発生しました: / by zero
処理は継続されます。

このようにcatchブロックで例外を補足すれば、プログラムが強制終了せずに後続処理を安全に続けることができます。

5. ArithmeticExceptionを回避する方法

5. ArithmeticExceptionを回避する方法
5. ArithmeticExceptionを回避する方法

例外処理を使うのも重要ですが、そもそも例外を発生させない工夫も大切です。ゼロ除算を避けるために分母がゼロでないかを事前にチェックする方法があります。


public class PreventArithmeticException {
    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        if (b != 0) {
            int result = a / b;
            System.out.println("計算結果: " + result);
        } else {
            System.out.println("分母がゼロなので計算できません。");
        }
    }
}

分母がゼロなので計算できません。

こうすることで、例外を未然に防ぎ、ユーザーにわかりやすいメッセージを表示することが可能になります。現実的な開発現場でもこのようなチェックは頻繁に行われます。

6. ArithmeticExceptionと他の例外の違い

6. ArithmeticExceptionと他の例外の違い
6. ArithmeticExceptionと他の例外の違い

ArithmeticExceptionはRuntimeExceptionを継承しているため非チェック例外に分類されます。つまり、コード上で必ずしもtry-catchを記述しなくてもコンパイルエラーにはなりません。これに対してIOExceptionなどのチェック例外は必ず処理を記述しなければなりません。

この違いを理解しておくと、プログラム設計の際にどの例外を明示的に扱う必要があるのかがわかりやすくなります。

7. 実務でのArithmeticException対策

7. 実務でのArithmeticException対策
7. 実務でのArithmeticException対策

実際の開発現場では、ユーザーが入力した値や外部システムから取得したデータを計算に利用することが多く、想定外のゼロ除算が発生する可能性があります。そのため入力チェックやバリデーションを行い、例外が起こらないようにすることが基本です。

さらに、エラーが発生した場合にはログに記録し、ユーザーにはわかりやすいエラーメッセージを表示するのが良い設計です。これによりシステムの安定性とユーザー体験が大幅に向上します。

Java Silver SE17(1Z0-825)の演習量を重視したい人には、 定番の問題集がこちらです。

徹底攻略 Java SE 17 Silver 問題集をAmazonで見る

※ Amazonアソシエイト・プログラムを利用しています

カテゴリの一覧へ
新着記事
PR

JavaやLinuxの検証環境に
低コストで使えるVPS

Thymeleafのth:blockの使い方を完全ガイド!初心者でもわかるテンプレートブロック管理
Thymeleafのth:selected属性の使い方を完全解説!初心者でもわかるセレクトボックス選択状態の指定方法
Spring MVCのルーティング設計をマスター!初心者向け@GetMappingと@PostMappingの基本と命名ルール
JSPのコメントタグとHTMLコメントの違いを徹底解説!初心者向けわかりやすい使い分け講座
PR 未経験からITエンジニアを目指す方へ

Javaを学んでいるけど、「このまま未経験で就職できるか不安」という20代向け。 学歴不問・無料サポートの就職支援という選択肢があります。

Tamesy |無料で面談予約
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
JavaのArrayListクラスとgetメソッドを完全解説!初心者でもわかるリストの要素取得
No.3
Java&Spring記事人気No3
JavaのIntegerクラスparseIntメソッド完全ガイド!初心者でもわかる文字列から数値変換
No.4
Java&Spring記事人気No4
Spring BootのJakarta移行ガイド!初心者向けjavax→jakarta変更ポイント徹底解説
No.5
Java&Spring記事人気No5
Thymeleafのth:classappend属性の使い方を完全ガイド!初心者でもわかる動的クラス追加
No.6
Java&Spring記事人気No6
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.7
Java&Spring記事人気No7
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.8
Java&Spring記事人気No8
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
PR

ローカルPCに依存しない開発環境という選択肢

Java・Linuxの検証や学習環境を、クラウド上ですぐに用意できます。

Java入門

Javaの基礎を体系的に学びたい場合は、文法だけでなく 「なぜそう書くのか」まで丁寧に解説されているため、 初心者でも理解しやすい定番の1冊です。

スッキリわかるJava入門 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Java実践

ジェネリクス、enum、シールクラスなどの型設計から、 関数型プログラミング(ラムダ式・Stream API)、 JVM制御やリフレクション、外部ライブラリの活用までを扱っており、 「Javaを使えるレベル」へ進むための内容が網羅されています。

スッキリわかるJava入門 実践編 第4版

※ 紙の書籍・電子書籍どちらでも購入できます

Spring入門

Spring Frameworkの全体像から、 Webアプリ開発で必要となる主要機能までを 体系的に解説している定番の入門書です。

Spring徹底入門 第2版 Spring FrameworkによるJavaアプリケーション開発

※ 紙の書籍・電子書籍どちらでも購入できます

PR 実務経験のあるエンジニア向け

Javaなどの実務経験があり、次のキャリアを検討している方向け。 IT・ゲーム業界に特化した転職支援サービスという選択肢もあります。

転職ボックス |IT・ゲーム業界専門