高考申論題
110年
[資訊處理] 程式語言
第 一 題
📖 題組:
四、程式例外處理的設計對於資訊系統的可靠性非常重要。 (一)請完成以下 C++程式(I)~(V)指令,處理兩數相除的例外狀況,使輸出為:(15 分) Exception:empty Exception:not a number Quotient:Exception:divided by zero Quotient:2.4 [程式碼詳見原圖頁次 4-3, 4-4] (二)請說明使用 try-catch 與 if-else,處理例外狀況的優缺點。(5 分) (三)請說明 C++與 Java 在 try-catch 中 finally 設計的異同與其理由。(5 分)
四、程式例外處理的設計對於資訊系統的可靠性非常重要。 (一)請完成以下 C++程式(I)~(V)指令,處理兩數相除的例外狀況,使輸出為:(15 分) Exception:empty Exception:not a number Quotient:Exception:divided by zero Quotient:2.4 [程式碼詳見原圖頁次 4-3, 4-4] (二)請說明使用 try-catch 與 if-else,處理例外狀況的優缺點。(5 分) (三)請說明 C++與 Java 在 try-catch 中 finally 設計的異同與其理由。(5 分)
📝 此題為申論題,共 3 小題
小題 (一)
請完成以下 C++程式(I)~(V)指令,處理兩數相除的例外狀況,使輸出為:(15 分)
Exception:empty
Exception:not a number
Quotient:Exception:divided by zero
Quotient:2.4
思路引導 VIP
這題要求補全例外處理類別的 what() 虛擬函數,以及主邏輯中的字串轉整數與除零檢查。關鍵在於:(I)~(III) 回傳對應訊息字串;(IV) 實作字元轉整數邏輯;(V) 偵測除數為零。
小題 (二)
請說明使用 try-catch 與 if-else,處理例外狀況的優缺點。(5 分)
思路引導 VIP
比較「錯誤處理(Exception Handling)」與「錯誤檢查(Error Checking)」。思考可讀性、程式結構(Separation of concerns)以及對效能的影響。
小題 (三)
請說明 C++與 Java 在 try-catch 中 finally 設計的異同與其理由。(5 分)
思路引導 VIP
Java 有 finally 關鍵字,而 C++ 沒有。思考為什麼?這跟記憶體管理機制(Garbage Collection vs RAII)有極大關係。