throws的作用是聲明拋出異常,在方法聲明的位置上使用throws關(guān)鍵字向上拋出異常。例如下面程序演示了一般性異常,編譯無(wú)法通過(guò)棋返,需要對(duì)異常進(jìn)行處理
import java.io.FileInputStream;
public classExceptionTest{
? ? publicstaticvoidmain(String[] args){
? ? ? ? //這句代碼的意思是創(chuàng)建文件輸入流,讀取文件雷猪,遇到不認(rèn)識(shí)的類可以查看API? ? ? ??
????????FileInputStream fis = new FileInputStream("d:/文本文檔.txt");
? ? }
}
使用throws將異常拋出:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class ExceotionTest01 {
????????public static void main(String[] args) throws FileNotFoundException {
????????????????????FileInputStream fis = new FileInputStream("d:/文本文檔.txt");
????????????}
}
深入throws
其實(shí)使用throws拋出異常并不是真正的去處理異常睛竣,而是拋給其調(diào)用者去處理。
比如你在工作中遇到問(wèn)題了求摇,交給了你的領(lǐng)導(dǎo)去解決酵颁,領(lǐng)導(dǎo)如果也不想解決就交給他的領(lǐng)導(dǎo)去解決。
在上面程序里面月帝,我們拋出了異常,最后是交給了jvm解決幽污,jvm的解決方式就是將錯(cuò)誤信息打印至控制臺(tái)嚷辅,然后關(guān)閉程序。
例如下面示例:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/*
* 使用throws關(guān)鍵字并不是真正的處理異常距误,而是交給其調(diào)用者去處理
* 并不是說(shuō)使用throws 就不好簸搞,而是使用throws將問(wèn)題暴露出來(lái)扁位,如何處理,由其調(diào)用者處理趁俊。
*
*/
public class ExceptionTest02 {
????????????public static void main(String[] args) throws FileNotFoundException {
????????????????????????????m1();
????????????????}
? ? ? ? ? ? ?public static void m1() throws FileNotFoundException {
????????????????????????????m2();
????????????????}
? ? ? ? ? ? ? ?public static void m2() throws FileNotFoundException {
????????????????????????????m3();
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? public static void m3() throws FileNotFoundException{
????????????????????????????????FileInputStream fis = new FileInputStream("d:/文本文檔.text");
????????????????}
}