第二章:簡單 Java 程式解析
第三章:變數與資料型態
第四章:運算子、運算式與敘述
第五章:選擇性敘述與迴圈
第十章:實例變數與函數、類別變數與函數
Powered By GitBook
於指定函數拋出例外
在上篇 於程式中拋出例外 介紹了如何在程式中拋出例外, 那麼若遇到函數中的程式碼發生例外,卻沒有 try-catch-finally 區塊來進行捕捉例外; 因此,
如果函數會拋出例外,那麼可以將函數的 呼叫 撰寫在 try-catch-finally 區塊。
1
函數名稱() throws 例外類別
2
{
3
函數中之程式碼
4
}
Copied!
與上篇不同在於 throw 是否有加 s,兩者關鍵字是有不同的。
    函數內部拋出例外,使用 throw
    指定函數拋出例外,使用 throws
讓我們將上篇範例修改一下:
將 a/b 寫成一個函數
1
public static void abc(int a,int b) throws ArithmeticException
2
{
3
int ans;
4
ans=a/b;
5
System.out.println(a+"/"+b+"="+ans);
6
}
Copied!
因此在 try-catch-finally 區塊就可以直接呼叫
1
try
2
{
3
abc(100,0);
4
}
5
catch(ArithmeticException e)
6
{
7
System.out.println(e+" 被拋出");
8
}
Copied!
當呼叫abc(100,0) 時,b為0 因此會拋出 ArithmeticException 例外。 而本範例是撰寫在同個 class 內,因此可以直接呼叫abc() 函數
1
public static void abc(int a,int b) throws ArithmeticException
2
{
3
int ans;
4
ans=a/b;
5
System.out.println(a+"/"+b+"="+ans);
6
}
7
8
public static void main(String args[])
9
{
10
try
11
{
12
abc(100,0);
13
}
14
catch(ArithmeticException e)
15
{
16
System.out.println(e+" 被拋出");
17
}
18
}
Copied!
若在不同類別,想要拋出例外; 我們只要稍微改一下:
函數是在 test 類別中,在main() 中撰寫try-catch-finally 區塊來處理例外; 這時只需要在呼叫函數時,加上函數所在的類別名稱即可。
以下範例:
1
class test
2
{
3
public static void abc(int a,int b) throws ArithmeticException
4
{
5
int c=a/b;
6
System.out.println(a+"/"+b+"="+c);
7
}
8
}
9
10
public class throws_ex
11
{
12
public static void main(String args[])
13
{
14
try
15
{
16
test.abc(100,0);
17
}
18
catch(ArithmeticException e)
19
{
20
System.out.println(e+" throwed");
21
}
22
}
23
}
Copied!
Last modified 9mo ago
Copy link