異常處理的方式二:在方法的聲明處,顯示的拋出該異常對象的類型
格式:如:public static void method1() throws FileNotFoundException,IOException {}
當(dāng)在此方法內(nèi)部出現(xiàn)異常的時候,會拋出一個異常類的對象,拋給方法的調(diào)用者。
異常的對象可以逐層向上拋,直至main中。當(dāng)然在向上拋的過程中,可以再通過try-catch-finally進(jìn)行處理。
java的異常處理:抓拋模型
1.抓:異常的處理,有兩種方式(①try-catch-finally②throws + 異常的類型,寫在方法聲明處):自動拋
2.拋:一旦執(zhí)行過程中,出現(xiàn)異常,會拋出一個異常類的對象。(自動拋出 vs 手動拋出(throw + 異常類的對象)聲明在方法的里面)
手動拋出的異常,若是RuntimeException,可以不顯示的處理;若是一個Exception,必須要顯示的處理
3.手動拋出異常的例子,寫在方法里
拋出的異常類型,若是RuntimeException,可以不顯示的處理
若是一個Exception,必須要顯示的處理。
例如:throw new Exception("傳入的類型有誤...");
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class TestException {
public static void main(String[] args) {
try {
method2();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void method2() throws FileNotFoundException, IOException{
method1();
}
public static void method1() throws FileNotFoundException,IOException {
FileInputStream fis = new FileInputStream("hello.txt");
int b;
while ((b = fis.read()) != -1) {
System.out.println((char) b);
}
fis.close();
}
}
子類重寫父類的方法,其拋出異常的類型只能是被重寫方法的異常類的子類或異常類型一樣。