【本節目标】
通過閱讀本節内容,你将了解到throws和throw關鍵字的作用與使用方法,學會在方法或類中使用throws注明可能會發生的異常,使用throw來手動抛出異常。
throws關鍵字
通過之前的程式可以發現,在執行程式的過程之中有可能會産生異常,但是如果說現在假設你定義了一個方法,實際上就應該明确的告訴使用者,這個方法可能會産生何種異常,那麼此時就可以在方法的聲明上使用throws關鍵字來進行異常類型的标注。
範例:觀察throws的使用
class MyMath{
//這個代碼執行的時候可能會産生異常,如果産生異常調用處處理
public static int div(int x ,int y) throws Exception {
return x / y ;
}
}
public class JavaDemo{
public static void main(String args[]) {
try {
System.out.println(MyMath.div(10,2)) ; //5
}catch (Exception e) {
e.printStackTrace() ;
}
}
}
System.out.println(MyMath.div(10,0)) ;

圖一 執行異常處理
主方法本身也是一個方法,那麼實際上主方法也可以繼續向上抛出。
範例:在主方法上繼續抛出異常
class MyMath{
//這個代碼執行的時候可能會産生異常,如果産生異常調用處處理
public static int div(int x ,int y) throws Exception {
return x / y ;
}
}
public class JavaDemo{
public static void main(String args[]) throws Exception {
System.out.println(MyMath.div(10,0)) ;
}
}
圖二 主方法上異常抛出
如果主方法繼續向上抛出異常,那麼就表示此異常将交由JVM負責處理。
throw關鍵字
與throws對應的還有throw關鍵字,此關鍵字的主要作用在于表示手工進行異常的抛出,即:此時将手工産生一個異常類的執行個體化對象,并且進行異常的抛出處理。
範例:觀察throw的使用
public class JavaDemo{
public static void main(String args[]) {
try { //異常對象不再是由系統生成,而是由手工定義的
throw new Exception("自己抛着玩的對象。") ;
}catch (Exception e) {
e.printStackTrace() ;
}
}
}
面試題:請解釋throw與throws的差別?
- throw:是在代碼塊中使用的,主要是手工進行異常對象的抛出;
- throws是在方法定義上使用的,表示将此方法中可能産生的異常明确告訴給調用處,由調用處進行處理。
想學習更多的Java的課程嗎?從小白到大神,從入門到精通,更多精彩不容錯過!免費為您提供更多的學習資源。
本内容視訊來源于
阿裡雲大學 下一篇:get異常處理的必備技能 | 帶你學《Java面向對象程式設計》之八十 更多Java面向對象程式設計文章檢視此處