logo

Java がキーワードをスローする

Java がキーワードをスローする 例外を宣言するために使用されます。これは、例外が発生する可能性があるという情報をプログラマに提供します。したがって、プログラムの通常の流れを維持できるように、プログラマが例外処理コードを提供することをお勧めします。

例外処理は主に、チェックされた例外を処理するために使用されます。 NullPointerException などの未チェックの例外が発生した場合は、使用前にコードをチェックしなかったプログラマの責任です。

bashのforループ

Javaスローの構文

 return_type method_name() throws exception_class_name{ //method code } 

どの例外を宣言する必要がありますか?

年: 次の理由により、例外のみがチェックされます。

    未チェックの例外:私たちの管理下にあるので、コードを修正できます。エラー:私たちの制御を超えています。たとえば、VirtualMachineError や StackOverflowError が発生した場合は何もできません。

Java の throw キーワードの利点

Checked Exception を伝播 (コール スタックに転送) できるようになりました。

これは、メソッドの呼び出し元に例外に関する情報を提供します。

Java スローの例

Java の throws 節の例を見てみましょう。この節では、チェック例外が throws キーワードによって伝播されることを説明しています。

テストスロー1.java

 import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } } 
今すぐテストしてください

出力:

 exception handled normal flow... 

ルール: 例外を宣言するメソッドを呼び出している場合は、例外をキャッチするか宣言する必要があります。

次の 2 つのケースがあります。

    ケース 1:例外をキャッチしました。つまり、try/catch ブロックを使用して例外を処理しました。ケース 2:例外を宣言しました。つまり、メソッドで throws キーワードを指定しました。

ケース 1: try-catch ブロックを使用して例外を処理する

例外を処理する場合、プログラム中に例外が発生するかどうかに関係なく、コードは正常に実行されます。

テストスロー2.java

 import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } } 
今すぐテストしてください

出力:

Java配列リストのソート
 exception handled normal flow... 

ケース 2: 例外を宣言する

  • 例外を宣言した場合、例外が発生しなければコードは正常に実行されます。
  • 例外を宣言して例外が発生した場合、その例外は実行時にスローされます。 投げる 例外を処理しません。

両方のシナリオの例を見てみましょう。

A) 例外が発生しない場合

テストスロー3.java

 import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } } 
今すぐテストしてください

出力:

Javaでデータベースに接続する
 device operation performed normal flow... 

B) 例外が発生した場合

テストスロー4.java

 import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } } 
今すぐテストしてください

出力:

Javaのスローキーワード

投げと投げの違い

詳細については、ここをクリックしてください

Que) 例外を再スローすることはできますか?

はい、catch ブロックで同じ例外をスローすることで可能です。