例如使用到 BufferedReader class 中的 readLine() method 時,便有可能引發 IOException 這個 Checked Exception,因此要在程式中明確指定處理,有兩種方式:
在程式中以 try catch 指定要捕捉的例外:
聲明丟出例外,由呼叫者負責處理(此處指的呼叫者是JVM):import java.io.*;
public class CheckedExceptionDemo {
public static void main(String[] args) {
try {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("請輸入整數:");
int intput = Integer.parseInt(buf.readLine());
System.out.println("input x 10 = " + (intput * 10));
}
catch(IOException e) { //使用 try catch 結構捕捉 checked exception
System.out.println("I/O 錯誤");
}
}
}
import java.io.*;
public class CheckedExceptionDemo2 {
//聲明丟出例外,由呼叫者負責處理(此處指的呼叫者是JVM)
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("請輸入整數:");
int intput = Integer.parseInt(buf.readLine());
System.out.println("input x 10 = " + (intput * 10));
}
}
此外,有別於 Checked Exception,Runtime Exception 則是屬於 Unchecked Exception,因此程式設計師是否要在程式中指定這些 Exception 的處理方式,可由程式設計師自行決定,即使程式中沒處理 Runtime Exception,compiler 並不會產生錯誤。
推薦連結
沒有留言:
張貼留言