Java 快速導覽 - throws 陳述

方法 (method) 使用關鍵字 (keyword) throws 丟出例外 (exception) , throws 緊接在方法的小括弧之後,如下例

class Throws1Demo {
    public int divide(int a, int b) throws ArithmeticException {
        return a / b;
    }
    
    public static void main(String[] args) {
        Throws1Demo t = new Throws1Demo();
        
        try {
            System.out.println(t.divide(15, 20));
            System.out.println(t.divide(10, 2));
            System.out.println(t.divide(63, 9));
            System.out.println(t.divide(2, 0));
        }
        catch (ArithmeticException ex) {
            System.out.println("發生算術錯誤");
        }
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:Throws1Demo.java
    功能:示範物件導向的基本觀念 
    作者:張凱慶
    時間:西元 2010 年 10 月 */


編譯後執行,結果如下



第 2 行
public int divide(int a, int b) throws ArithmeticException {


這裡 divide() 宣告丟出 ArithmeticException 的例外,因此呼叫 (call) divide() 的 main()
try {
    System.out.println(t.divide(15, 20));
    System.out.println(t.divide(10, 2));
    System.out.println(t.divide(63, 9));
    System.out.println(t.divide(2, 0));
}
catch (ArithmeticException ex) {
    System.out.println("發生算術錯誤");
}


有呼叫 divide() 的部份就必須放在 try-catch 陳述 (statement) 之中。


如果一個方法需要丟出多個例外,如擴充 divide() 的功能,使 divide() 除了有可能會發生 ArithmeticException 之外,也可能發生 IOException ,這時,多個例外類別 (class) 以逗點分開即可,如下
public int divide(int a, int b) throws IOException, ArithmeticException {
    //方法的程式碼
}


中英文術語對照
方法method
關鍵字keyword
例外exception
呼叫call
陳述statement
類別class






沒有留言: