l

2014年2月6日 星期四

視力測驗:例外處理篇(2)

Feb. 04 10:06~10:16

image

 

今天繼續「洩題」,作答時間一樣是6分鐘,計時開始。

***

7. 例外發生之後,如果要讓程式繼續正常執行,例外處理程序(exception handler)至少必須確定以下哪一件事情?

A. 系統的bug已經被移除。

B. 使用者獲得錯誤訊息通知。

C. 系統自動重新啟動。

D. 電腦沒有中毒。

E. 系統處於正確狀態且沒有資源遺漏(resource leak)。

8. 以下節錄自ANT的程式碼,存在哪一個例外處理壞味道?

private Properties getProperties(Resource r) {

InputStream in = null;

Properties props = new Properties();

try {

       in = r.getInputStream();

       props.load(in);

} catch (IOException ioe) {

      ioe.printStackTrace();

} finally {

      FileUtils.close(in);

}

return props;

}

A. 粗心的資源釋放(Careless Cleanup)。

B. 忽略受檢例外(Ignored Checked Exception)。

C. 虛設的例外處理程序(Dummy Handler)。

D. 當成備胎的例外處理程序(Spare Handler)。

E. 沒有存在任何壞味道。

9. 以下關於Java的checked exception和unchecked exception的敘述,何者是錯的?

A. Checked exception代表可回復錯誤狀況,unchecked exception代表不可回復錯誤狀況。

B. Checked exception如果要往函數外傳遞,必須要被宣告在函數介面上。反之, unchecked exception不可以被宣告在函數介面上。

C. Java編譯器會檢查checked exception的使用是否遵循「處理或宣告原則(handle-or-declare rule)」。

D. 在程式執行的時候(runtime),Java虛擬機器不會檢查checked exception是否違反「處理或宣告原則(handle-or-declare rule)」。

E. 以上皆非。

10. Java的EOFException屬於checked exception。以下關於EOFException的敘述何者是對的?

A. 有時候EOFException僅代表通知(notification),而非例外狀況。

B. 因為EOFException屬於checked exception,所以一定要把它宣告在介面上,否則會產生與法錯誤。

C. 因為EOFException屬於checked exception,所以一定是可回復例外(recoverable exception),捕捉下來之後要執行狀態回復動作。

D. EOFException是IOException的子類別,這種設計技巧稱為Smart Exception(聰明例外)。

E. 以上皆是。

11. 以下關於C#例外處理機制,何者是錯的?

A. C#預設採用stack unwinding來尋找例外處理程序(exception handler)。

B. C#的例外傳遞是屬於內隱式(implicit)。

C. C#使用資料物件(data object)來表達例外。

D. C#的例外模型採用終止模型(termination model)。

E. 因為C#沒有區分checked exception與unchecked exception,所以也沒有辦法區分可回復例外與不可回復例外。

12. 兩棟大樓之間的雷射資料傳輸,因為有候鳥飛過而導致資料傳輸失效。此種失效原因,可稱為?

A. 間歇缺陷(intermittent fault)。

B. 永久缺陷(permanent fault)。

C. 週期性缺陷(periodic fault)。

D. 安全性缺陷(safety fault)。

E. 暫態缺陷(transient fault)。

***

友藏內心獨白:答對一題得0.1分,加總分數就是各位的「例外處理視力」,最佳視力為1.2。

沒有留言:

張貼留言