English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基础教程

Java 流程制御

Java 配列

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 異常処理

Java 列表(List)

Java Queue(キュー)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Javaの他のトピック

Java 異常(Exceptions)

このチュートリアルでは、Javaの例外を学びます。Javaのエラー、例外、異なるタイプの例外について紹介します。

 例外はプログラムの実行中に発生する予期せぬイベントです。これにより、プログラムの命令の流れが影響を受け、プログラムが異常終了します。

 例外が発生する原因は様々です。その中には以下のようなものがあります:

  • 無効なユーザー入力

  • デバイスの故障

  • ネットワーク接続が切れる

  • 物理的な制限(ディスクメモリ不足)

  • コードエラー

  • 利用できないファイルを開く

Javaの例外階層構造

これはJavaの例外階層構造の簡略図です。

上の図から見ると、Throwableクラスは階層構造の根クラスです。

注:階層構造は2つの枝に分かれています:エラー(Error)と例外(Exception)。

Error

Error不可復の状況を表します。例えば、Java仮想機(JVM)のメモリ不足、メモリリーク、スタックオーバーフローエラー、ライブラリの互換性がない、無限ループなどです。

エラーはプログラマーがコントロールできないことが多いです。エラーは処理を試みるべきではありません。

Exception

プログラムは例外をキャッチし、処理できます例外

メソッド内で例外が発生した場合、オブジェクトが作成されます。このオブジェクトは例外オブジェクトと呼ばれます。

例外に関する情報を含んでいます。例えば、例外の名前や説明、例外が発生した時のプログラムの状態などです。

次のチュートリアルでは、これらの例外の処理方法を学びます。このチュートリアルでは、まずJavaの異なるタイプの例外に焦点を当てます。

Javaの例外タイプ

例外の階層構造には2つの枝があります:RuntimeExceptionとIOException。

1. RuntimeException

1実行時例外プログラミングエラーによる発生です。これらはまた非チェック例外

これらの例外はコンパイル時にチェックされず、実行時にチェックされます。一般的な実行時例外は以下の通りです:

  • APIの使用が不適切です - IllegalArgumentException

  • 空のポインタアクセス(変数の初期化が不足している)- NullPointerException

  • 範囲外の配列アクセス - ArrayIndexOutOfBoundsException

  • 数字を0で割る - ArithmeticException

 あなたはこんな感じで考えてみてください:これがランタイム例外の場合、それはあなたのせいです

変数が初期化されているかを確認する前に変数を使用する場合、NullPointerExceptionは発生しません
配列の境界を基に配列インデックスをテストする場合、ArrayIndexOutOfBoundsExceptionは発生しません

2. IOException

IOExceptionもチェック例外

チェック例外の例として:

  • 存在しないファイルを開こうとすると、FileNotFoundExceptionが発生します

  • ファイルの終わりを超えた内容を読み込もうとすると、EOFExceptionが発生します

現在、例外について学びましたので、次のチュートリアルで学びます例外処理