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
子句。
如果拋出未經檢查的異常,上面的這些規則不適用。