Java で例外をスローする場合は、Java の 2 つのキーワードを使用する必要があります。どちらも例外処理メカニズムに使用されます。
throw: 生成された例外をスローします (アクションに重点を置いています)。スローされるものは、例外参照または例外オブジェクトのいずれかです。 (場所: メソッド本体内)
throws: メソッドが例外をスローする可能性があるが、この例外を処理する機能がない場合は、メソッドで throws 句を使用できます。宣言は、例外がスローされることを宣言します。これで変更されたメソッドは、メソッドが例外をスローする可能性があることを呼び出し元に示します (1 つのタイプまたはコンマで区切られた複数のタイプにすることができます) (位置: メソッド本体の前の、メソッド名またはメソッド名のリストの後に記述されます)。 )
注: 例外をスローする可能性のあるメソッドを呼び出す場合は、try-catch コード ブロックを追加して例外をキャッチしようとするか、throws ステートメントを追加して例外をスローする必要があります。上位レベル。呼び出し元の層がそれを処理します。ここで 1 つの詳細に注意する必要があります。新しい例外には、元の例外のすべての情報が含まれています。これに基づいて、元の例外が発生した場所を追跡できます。
簡単な使用法:
// 定义一个方法,抛出 数组越界和算术异常(多个异常 用 "," 隔开) public void Test1(int x) throws ArrayIndexOutOfBoundsException,ArithmeticException{ System.out.println(x); if(x == 0){ System.out.println("没有异常"); return; } //数据越界异常 else if (x == 1){ int[] a = new int[3]; a[3] = 5; } //算术异常 else if (x == 2){ int i = 0; int j = 5/0; } }
#
public static void main(String[] args) { //创建对象 ExceptionInital object = new ExceptionInital(); // 调用会抛出异常的方法,用try-catch块 try{ object.Test1(0); }catch(Exception e){ System.out.println(e); } // 数组越界异常 try{ object.Test1(1); }catch (ArrayIndexOutOfBoundsException e) { System.out.println("数组越界异常:"+e); } // 算术异常 try{ object.Test1(2); }catch(ArithmeticException e){ System.out.println("算术异常:"+e); } //使用 throw 抛出异常(可以抛出异常对象,也可以抛出异常对象的引用) try{ ArrayIndexOutOfBoundsException exception = new ArrayIndexOutOfBoundsException(); throw exception;//new ArrayIndexOutOfBoundsException(); }catch(ArrayIndexOutOfBoundsException e){ System.out.println("thorw抛出异常:"+e); } }
## throw と throws キーワードの違いをまとめます
1. 書き方: throw はメソッド本体、throws は関数名の後に使用します。または、パラメーター リストの後、メソッド本体の前
2. 意味: throw はアクションを強調する一方、 throw は実際に起こる可能性はあるものの、必ずしも発生するとは限らない傾向を示します 3. Throw の後には、例外クラス。1 つ以上のクラスを指定できます。複数の場合はカンマで区切られます。 throw の後には、例外オブジェクト、または例外オブジェクトへの参照が続きます。
4. throws ユーザーが例外をスローします。現在のメソッドで例外がスローされると、現在のメソッドの実行が終了します (throw の後、finally ステートメントがある場合は、finally ステートメントが実行されるまで実行されます)。ステートメントを作成して終了します)。リターンとも理解できます。
関連する学習の推奨事項:Java 基本チュートリアル
以上がJavaはどのようにして例外をスローしますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。