免費開始練習
司法三等申論題 115年 [檢察事務官電子資訊組] 程式語言

第 二 題

📖 題組:
二、請回答以下關於 Java 程式語言的例外處理(Exception Handling)問題。
📝 此題為申論題,共 3 小題

小題 (二)

(二)根據圖 2-1 所示的 Java 程式碼,寫出執行 main()方法後的完整輸出結果。(5 分)
public class Test {
static int parse(String text) {
try {
return Integer.parseInt(text);
}
catch (NumberFormatException e) {
return -1;
}
finally {
System.out.print("F");
}
}

public static void main(String[] args) {
System.out.println(parse("12"));
System.out.println(parse("abc"));
}
}
圖 2-1

思路引導 VIP

📋 事實梳理:方法 parse 中,有 try-catch-finally 區塊。try 中有 return,catch 中也有 return,而 finally 內有 System.out.print("F")。 🔍 爭點辨識:如果在 try 裡面已經執行了 return,finally 還會不會執行?印出的順序是什麼?

🤖
AI 詳解
AI 專屬家教

【爭點分析】 本題爭點在於 try-catch-finally 控制流(Control Flow)之執行順序,尤其當 trycatch 區塊中已存在 return 敘述時,finally 區塊何時觸發,以及 printprintln 的輸出緩衝差異。 【大前提:法規與實務見解】

小題 (一)

(一)請說明 Java 語言中 checked exception 與 unchecked exception 的差異,並各舉一個 Java 內建的例外類別作為範例。(10 分)

思路引導 VIP

📋 事實梳理:Java 的例外體系中,分為兩種處理態度:一種是編譯器強迫你要處理,一種是不強迫。 🔍 爭點辨識:這兩種例外分別對應什麼名稱?它們在繼承結構上又有什麼差異?

🤖
AI 詳解
AI 專屬家教

【爭點分析】 本題探討 Java 例外處理機制中,編譯時期與執行時期例外防護之法理基礎與階層架構。 【大前提:法規與實務見解】

小題 (三)

(三)假設有一個類別 Calculator 包含圖 2-2 所示的靜態方法,請撰寫一個 JUnit 5 測試類別,驗證下列三項行為。(10 分)
 divide(10, 2)應得到 5。
 divide(10, 0)應拋出 IllegalArgumentException。
 例外訊息應為"division by zero"。

public static int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("division by zero");
}
return a / b;
}
圖 2-2

思路引導 VIP

📋 事實梳理:撰寫 JUnit 5 測試,需要驗證正常回傳值,以及驗證拋出特定例外及特定訊息。 🔍 爭點辨識:JUnit 5 中,驗證相等用什麼方法?驗證拋出例外用什麼方法?

🤖
AI 詳解
AI 專屬家教

【爭點分析】 本題測驗單元測試(Unit Test)框架 JUnit 5 中斷言(Assertions)機制之應用,包含正常邏輯數值比對與例外觸發之捕獲。 【大前提:法規與實務見解】

🏷️ 相關主題

物件導向程式設計
查看更多「[檢察事務官電子資訊組] 程式語言」的主題分類考古題