Q18.
在Java 例外(Exception)處理中,若在try 區塊中配置一個資源,下述何者正確?
電腦軟體設計(JAVA) · 乙級 · Java · Q18
難易度分析
3 / 5
本題要求考生區分 Java 例外處理機制中,受檢例外之強制性處理要求與資源釋放的正確位置。由於選項中設置了關於 try 區塊搭配條件以及資源關閉時機的常見誤區,需要對語法結構有準確的掌握才能排除干擾項。
正確答案:②需要捕捉資源配置所產生的例外情況,或是在此方法(method)丟出一個例外
② 需要捕捉資源配置所產生的例外情況,或是在此方法(method)丟出一個例外:在 try 區塊中配置資源時,必須使用 catch 處理例外,或在方法簽章宣告 throws 子句將例外向上拋出,這符合 Java 的 受檢例外(Checked Exception) 處理原則。
錯誤選項解析
- ① 至少要跟隨一個catch 區塊:try 區塊可以僅搭配 finally 區塊使用,不一定需要 catch 區塊。自 Java 7 起也可使用 try-with-resources 語法自動管理資源。
- ③ 必須在下一個catch 區塊釋放此資源:資源釋放應在 finally 區塊中執行,而非 catch 區塊。若例外未被 catch 捕獲,finally 仍會執行,確保資源不會發生 資源洩漏(Resource Leak)。
- ④ 必須在此try 區塊的最後指令釋放此資源:若在 try 區塊中間發生例外,最後一行指令將不會被執行,導致資源無法釋放。正確做法是使用 finally 區塊或 try-with-resources 確保資源必定被關閉。
Learning Tip
"此題核心考點為 Java 例外處理與資源管理。常考陷阱包括:(1) try 不一定需要 catch,可單獨搭配 finally 使用;(2) 資源釋放應寫在 finally 或使用 AutoCloseable 介面的 try-with-resources 語法;(3) 受檢例外(Checked Exception)必須被 catch 處理或 throws 宣告,否則編譯失敗。實務上強烈建議優先採用 try-with-resources 以避免人為疏失造成資源洩漏。"
學員答題分佈
①至少要跟隨一個catch 區塊0%
②需要捕捉資源配置所產生的例外情況,或是在此方法(method)丟出一個例外0%
③必須在下一個catch 區塊釋放此資源0%
④必須在此try 區塊的最後指令釋放此資源0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!