Java異常丟擲


如果要在一段程式碼中丟擲一個已檢查的異常,有兩個選擇:

  • 使用try-catch塊處理已檢查的異常。
  • 在方法/建構函式宣告中用throws子句指定。

語法

throws子句的一般語法是:

<modifiers> <return type> <method name>(<params>) throws<List of Exceptions>{

}

關鍵字throws用於指定throws子句。throws子句放在方法引數列表的右括號之後。throws關鍵字後面是以逗號分隔異常型別的列表。

範例-1

以下程式碼顯示如何在方法宣告中使用throws子句

import java.io.IOException;

public class Main {
  public static void readChar() throws IOException {
    int input = System.in.read();

  }
}

這裡是顯示如何使用它的程式碼。

範例-2

在呼叫方法中捕捉丟擲的異常 -

import java.io.IOException;

public class Main {
  public static void readChar() throws IOException {
    int input = System.in.read();
    System.out.println(input);
  }

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

}

上面的程式碼生成以下結果(輸入-1回車,得到以下結果)。

-1
45

範例-3

繼續 範例-2 直接丟擲異常。

import java.io.IOException;

public class Main {
  public static void readChar() throws IOException {
    int input = System.in.read();
    System.out.println(input);
  }

  public static void main(String[] args) throws IOException {
    readChar();
  }
}

上面的程式碼生成以下結果(輸入-1回車,得到以下結果)。

-1
45

丟擲異常

可以使用throw語句在程式碼中丟擲異常。throw語法的語法是 -

throw <A throwable object reference>;

throw是一個關鍵字,後面跟著一個可丟擲物件的參照。throwable物件是一個類的範例,它是Throwable類的子類,或Throwable類本身。

以下是throw語句的範例,它丟擲一個IOException

// Create an  object of  IOException
IOException e1  = new IOException("File not  found");
// Throw the   IOException 
throw  e1;

可以建立一個throwable物件並將其放在一個語句中。

// Throw an  IOException
throw  new IOException("File not  found");

如果丟擲一個被檢查的異常,必須使用try-catch塊來處理它,或者在方法或建構函式宣告中使用throws子句。

如果丟擲未經檢查的異常,上面的這些規則不適用。