工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java スローとスロー

Java スローとスロー

このチュートリアルでは、例を使用して例外処理に throw および throws キーワードを使用する方法を学習します。

Java では、例外は次の 2 つのタイプに分類できます。

チェックされた例外とチェックされていない例外の詳細については、Java 例外を参照してください。

通常、未チェックの例外を処理する必要はありません。これは、プログラミング エラーにより未チェックの例外が発生するためです。また、それらを処理する代わりに修正することをお勧めします。

このチュートリアルでは、throw を使用してチェック例外を処理する方法に焦点を当てます。 と throws .


Java throws キーワード

throws を使用します

その構文は次のとおりです:

accessModifier returnType methodName() throws ExceptionType1, ExceptionType2 … {
  // code
}

上記の構文からわかるように、 throws を使用できます 複数の例外を宣言します。


例 1:Java がキーワードをスローする

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    // code that may produce IOException
    File newFile=new File("test.txt");
    FileInputStream stream=new FileInputStream(newFile);
  }

  public static void main(String[] args) {
    try{
      findFile();
    } catch(IOException e){
      System.out.println(e);
    }
  }
}

出力

java.io.FileNotFoundException: test.txt (No such file or directory)

このプログラムを実行すると、ファイル test.txt 存在しません、FileInputStream FileNotFoundException をスローします IOException を拡張します クラス。

メソッドが例外を処理しない場合、メソッド内で発生する可能性のある例外の種類を throws で指定する必要があります。 コールスタックのさらに上のメソッドがそれらを処理したり、 throws を使用してそれらを指定したりできるようにする句

findFile() メソッドは IOException 投げることができます。 main() メソッドはこのメソッドを呼び出し、例外がスローされた場合はそれを処理します。


複数の例外のスロー

throws を使用して複数の例外をスローする方法を次に示します。 キーワード。

import java.io.*;
class Main {
  public static void findFile() throws NullPointerException, IOException, InvalidClassException {
    
    // code that may produce NullPointerException
    … … … 

    // code that may produce IOException
    … … … 

    // code that may produce InvalidClassException 
    … … … 
  }

  public static void main(String[] args) {
    try{
      findFile();
    } catch(IOException e1){
      System.out.println(e1.getMessage());
    } catch(InvalidClassException e2){
      System.out.println(e2.getMessage());
    }
  }
}

ここでは、findFile() メソッドは NullPointerException をスローできることを指定します 、 IOException 、および InvalidClassException その throws

NullPointerException を処理していないことに注意してください .これは、未チェックの例外であるためです。 throws で指定する必要はありません。


キーワード Vs をスローします。試して...キャッチ...最後に

例外の原因となるメソッドがいくつかある場合があります。 try...catch を書いています 各メソッドは退屈で、コードが長くなり、読みにくくなります。

throws 現在のメソッドでキャッチしたくない例外 (処理する必要がある例外) をチェックした場合にも役立ちます。


Java スロー キーワード

throw キーワードは、単一の例外を明示的にスローするために使用されます。

例外がスローされると、プログラム実行の流れは try から移行します。 catch へのブロック ブロック。 throw を使用します メソッド内のキーワード。

その構文は次のとおりです:

throw throwableObject;

スロー可能なオブジェクトはクラス Throwable のインスタンスです または Throwable のサブクラス クラス。


例 2:Java スロー キーワード

class Main {
  public static void divideByZero() {
    throw new ArithmeticException("Trying to divide by 0");
  }

  public static void main(String[] args) {
    divideByZero();
  }
}

出力

Exception in thread "main" java.lang.ArithmeticException: Trying to divide by 0
    at Main.divideByZero(Main.java:3)
    at Main.main(Main.java:7)
exit status 1

この例では、明示的に ArithmeticException. をスローしています。

注: ArithmeticException 未チェックの例外です。通常、未チェックの例外を処理する必要はありません。


例 3:チェック例外のスロー

import java.io.*;
class Main {
  public static void findFile() throws IOException {
    throw new IOException("File not found");
  }

  public static void main(String[] args) {
    try {
      findFile();
      System.out.println("Rest of code in try block");
    } catch (IOException e) {
      System.out.println(e.getMessage());
    }
  }
}

出力

File not found

findFile() メソッドは IOException をスローします コンストラクターに渡したメッセージと共に。

これはチェック例外であるため、throws で指定する必要があることに注意してください。

この findFile() を呼び出すメソッド メソッドは、この例外を処理するか、throws を使用して指定する必要があります

main でこの例外を処理しました () 方法。 try からのプログラム実行の流れ catch までブロック 例外がスローされたときにブロックします。したがって、try の残りのコードは ブロックはスキップされ、catch 内のステートメント ブロックが実行されます。


Java

  1. Java 変数とリテラル
  2. Java 基本入出力
  3. Java 式、ステートメント、およびブロック
  4. Java クラスとオブジェクト
  5. Java 抽象クラスと抽象メソッド
  6. Java のネストされた内部クラス
  7. Javaは複数の例外をキャッチします
  8. Java オートボクシングとアンボクシング
  9. Java 文字列 replace()、replaceAll() および replaceFirst() メソッド
  10. Java 文字列 toLowercase() および toUpperCase() メソッド
  11. Java - オブジェクトとクラス