第二章:簡單 Java 程式解析
第三章:變數與資料型態
第四章:運算子、運算式與敘述
第五章:選擇性敘述與迴圈
第十章:實例變數與函數、類別變數與函數
Powered By GitBook
範例:例外處理
[Java]例外處理 exception handing(基本概念)中提到「例外類別」,指的是 拋出的物件所屬類別。
Array Index Out Of Bounds Exception 就是例外類別的一種
我們將以上的範例做修改,加入try catch finally 的敘述:
1
public static void main(String args[])
2
{
3
try
4
{
5
int arr[]=new int[5];
6
arr[10]=7;
7
}
8
catch(ArrayIndexOutOfBoundsException e)
9
{
10
System.out.println("索引值超出範圍");
11
}
12
finally // 此區塊那敘述一定會被執行
13
{
14
System.out.println("finally 中敘述");
15
}
16
System.out.println("try-catch-finally 敘述之外");
17
}
Copied!
讓我們再看一次流程圖:
因此 try 中敘述將檢查是否有例外發生
1
try
2
{
3
int arr[]=new int[5];
4
arr[10]=7;
5
}
Copied!
如果有例外發生,而且這個例外又是ArrayIndexOutOfBoundsException 類別, 就會印出 索引值超出範圍
1
catch(ArrayIndexOutOfBoundsException e)
2
{
3
System.out.println("索引值超出範圍");
4
}
Copied!
最後不管以上例外是否發生與捕捉,finally 中敘述都會被執行, 因此會印出 finally 中敘述
1
finally // 此區塊那敘述一定會被執行
2
{
3
System.out.println("finally 中敘述");
4
}
5
Copied!
透過例外的機制,除了能夠讓程式執行到最後,而且還能加上錯誤訊息的提示。
那麼, 在例外類別後方又加上一個 e 是什麼意思呢?
1
catch(ArrayIndexOutOfBoundsException e)
Copied!
e 是一個可以自己命名的變數名稱,也就是說 這是用例外類別建立的類別變數。 我們可以透過這個變數來顯示例外的相關訊息:
1
catch(ArrayIndexOutOfBoundsException e)
2
{
3
System.out.println("索引值超出範圍");
4
System.out.println("訊息:"+e);
5
}
Copied!
如此一來,如果有例外發生,而且這個例外又是ArrayIndexOutOfBoundsException 類別, 就會印出 索引值超出範圍 且能夠印出 訊息:Array Index Out Of Bounds Exception : 10
Last modified 9mo ago
Copy link