Java中throw和throws的區別
throw和throws都是異常處理的概念,其中throw用於在方法或程式碼塊中顯式丟擲異常,而throws用於在方法簽名中指示該方法可能丟擲列出的型別異常。
以下是throw和throws之間的一些重要區別。
| 序號 | 關鍵點 | throw | throws |
|---|---|---|---|
| 1 | 定義 | throw是一個關鍵字,用於在程式中函式或程式碼塊內顯式丟擲異常。 | throws是用於方法簽名中的關鍵字,用於宣告函式在執行程式碼時可能丟擲的異常。 |
| 2 | 內部實現 | 在內部,throw的實現一次只允許丟擲一個異常,即不能使用throw關鍵字丟擲多個異常。 | 另一方面,可以使用throws關鍵字宣告多個可能由使用throws關鍵字的函式丟擲的異常。 |
| 3 | 異常型別 | 使用throw關鍵字,只能傳播未檢查異常,即不能使用throw傳播檢查異常。 | 另一方面,使用throws關鍵字可以宣告檢查異常和未檢查異常,對於傳播檢查異常,必須使用throws關鍵字後跟具體的異常類名。 |
| 4 | 語法 | 從語法上講,throw關鍵字後跟例項變數。 | 另一方面,從語法上講,throws關鍵字後跟異常類名。 |
| 5 | 宣告 | 為了使用throw關鍵字,我們應該知道throw關鍵字是在方法內部使用的。 | 另一方面,throws關鍵字與方法簽名一起使用。 |
throw與throws示例
JavaTester.java
public class JavaTester{
public void checkAge(int age){
if(age<18)
throw new ArithmeticException("Not Eligible for voting");
else
System.out.println("Eligible for voting");
}
public static void main(String args[]){
JavaTester obj = new JavaTester();
obj.checkAge(13);
System.out.println("End Of Program");
}
}輸出
Exception in thread "main" java.lang.ArithmeticException: Not Eligible for voting at JavaTester.checkAge(JavaTester.java:4) at JavaTester.main(JavaTester.java:10)
示例
JavaTester.java
public class JavaTester{
public int division(int a, int b) throws ArithmeticException{
int t = a/b;
return t;
}
public static void main(String args[]){
JavaTester obj = new JavaTester();
try{
System.out.println(obj.division(15,0));
}
catch(ArithmeticException e){
System.out.println("You shouldn't divide number by zero");
}
}
}輸出
You shouldn't divide number by zero
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP