ホームページ  >  記事  >  Java  >  Java プログラムにおける一般的な例外とその処理は何ですか?

Java プログラムにおける一般的な例外とその処理は何ですか?

王林
王林転載
2023-06-03 22:16:421396ブラウズ

1. JDK の一般的な例外

1. 一般的な例外の概要図

2. Java における例外の分類

Throwable クラスには 2 つの直接サブクラスがあります:

(1) 例外: 問題は捕捉できます

(2) エラー: システム エラー。通常はJVM

3. キャッチされた例外のカテゴリ

(1) チェック例外: Exception から派生した例外クラス。キャッチされるか、再度スローされるように宣言される必要があります。

(2) ランタイム例外: RuntimeException から派生した例外クラスを指します。この種の例外オブジェクトは、 throw ステートメント throw new ArithmeticException(...);

2 を使用していつでもスローできます。例外の理由

1。ユーザーが不正なデータを入力しました。

2. 開こうとしたファイルが存在しません。

3. ネットワーク通信が切断されました

4. JVM メモリ オーバーフロー

3. Java プログラムのいくつかの一般的な例外とこの例外の理由

1.java.lang.NullpointerException(NullpointerException)

この例外の一般的な理由は、プログラム内に null ポインター、つまり初期化されていない呼び出しがあることです。作られているか、存在しないオブジェクトです。

これらのコードは、オブジェクトが初期化されていない場合やイメージ パスが間違っている場合など、オブジェクトの作成や配列の呼び出しでよく発生します。配列コード

に出現する NULL ポインターは、配列の初期化と配列要素の初期化を混同しています。配列の初期化は配列に領域を割り当てることであり、配列要素の

初期化は配列

2 内の要素に初期値を割り当てることです。 java.lang.ClassNotFoundException (指定されたクラスが存在しません)

原因: 文字列型データを指定された数値型に変換しようとしましたが、文字列が数値データの要件を満たしていない場合、これは

#頻繁に例外がスローされます。データをString型から数値型に変換する場合、例えば「123456」を数値型に変換するといった操作が可能です。ただし、String型のデータに123*56などの

数値以外の文字が含まれている場合、数値型への変換時に例外が発生します。システムはこの例外をキャッチして処理します

3. java.lang.ClassNotFoundExceptio (指定されたクラスが存在しません)

この問題の根本はclass 名前とパスが正しくないと、プログラムが文字列を介してクラスをロードしようとすると例外が発生する可能性があります。例: Class.forName() を呼び出すとき、または ClassLoad の finaSystemClass() または LoadClass() を呼び出すときに

Exception が発生します。

4、java.lang.IndexOutOfBoundsException (配列 Subscript の下)範囲外の例外)

原因: プログラム内で呼び出された配列または文字列の添字値が配列の範囲を超えていないか確認してください。一般に呼び出し元を表示するのは簡単ではありません。 array.

このような間違いですが、暗黙的な呼び出しでエラーが発生する可能性があります。別の状況として、プログラム内で定義された配列の長さが特定のメソッドによって決定され、

宣言されていない場合があります。このとき、この例外を回避するには、まず配列の長さをチェックします。

#5, java.lang.IllegalArgumentException (メソッド パラメーター エラー)

#例: g.setColor (int red, int green, int blue) このメソッド内の 3 つの値が 255 を超えるとこの例外が発生します この例外がプログラム内に存在する場合は、メソッド呼び出しを確認するには、パラメータの転送やパラメータの値にエラーがありますか?

6, java.lang.IllegalAccessException (アクセス権限なし)

プログラムが実行されたときクラスを呼び出したいと考えていますが、メソッドにクラスへのアクセス権がない場合、現在の This 例外が発生します。プログラム内で Package を使用している場合

この例外が発生する可能性があります

7. java.lang.ArithmeticException (数学的演算例外)

この例外が発生します数学演算でゼロ除算などの演算が発生する場合。

8、java.lang.ClassCastException (データ型変換例外)

オブジェクトを強制的に下方変換しようとしたが、オブジェクトが変換できない、または変換できない場合そのサブクラスのインスタンスに変換されると、この例外が発生します。

9、java.lang.FileNotFoundException (ファイルが見つからない例外)

プログラムがこの例外を開くと、存在しないファイルを読み書きするときにスローされます。この例外は、FileInputStream、FileOutputStream、

RandomAccessFile のコンストラクター宣言によってスローされ、操作対象のファイルが存在していても、読み取り専用で を開いた場合など、何らかの理由でアクセスできない場合に発生します。ファイルにアクセス許可のみを指定してそこにデータを書き込む場合、上記の構築方法では依然として例外が発生します

10、java.lang.ArrayStoreException (配列ストレージ例外)

Whenの型を変換しようとしています 互換性のない型のオブジェクトが Object[] 配列に格納されている場合、例外がスローされます

11, java.lang.NoSuchMethodException (メソッドには例外は存在しません) )

プログラムがリフレクションを通じてオブジェクトを作成し、メソッドにアクセス (変更または読み取り) しようとしたときに、メソッドが存在しない場合は例外がスローされます。

12. java.lang.EOFException (ファイルの終わりの例外)

プログラムが入力プロセス中にファイルまたはストリームの終わりに遭遇すると、例外が発生します。投げられた。したがって、この例外はファイルまたはストリームの終わりに達したかどうかを確認するために使用されます

13. java.lang.InstantiationException (インスタンス化例外)

Class の newInstance() メソッドを通じてクラスのインスタンスを作成しようとしたが、プログラムがコンストラクター オブジェクトの作成時に呼び出されます。

Class オブジェクトは、抽象クラス、インターフェイス、配列クラス、基本型を表します。この Class によって表されるクラスには、対応するコンストラクターがありません。

14、java.lang.InterruptedException (中止された例外)

スレッドが長期待機、スリープ、またはその他の一時停止状態にあり、この時点でother この例外は、スレッドが Thread の割り込みメソッドを通じてスレッドを終了するときにスローされます。

15. java.lang.CloneNotSupportedException (クローン例外はサポートされていません)

Cloneable インターフェースが実装されていない場合、または clone メソッドがサポートされていない場合、そのクローンを呼び出します() メソッドはこの例外をスローします。

16、java.lang.OutOfMemoryException (メモリ不足エラー)

利用可能なメモリが Java 仮想マシンにとって不十分な場合にスローされます。オブジェクトに割り当てるエラー

17、java.lang.NoClassDefFoundException (クラス定義エラーが見つかりません)

Java 仮想マシンまたはクラス ローダーがインスタンス化を試行したときクラスの定義が見つからない場合、このエラーがスローされます

以上がJava プログラムにおける一般的な例外とその処理は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。