1. 程式人生 > >201621123041java程序設計第十周學習總結

201621123041java程序設計第十周學習總結

alt 參數 integer 碼雲 6.2 分享圖片 tin 初始 tab

1. 本周學習總結

  • 技術分享圖片

2. 書面作業

1. 常用異常

1.1 自己以前編寫的代碼中經常出現什麽異常、需要捕獲嗎(為什麽)?應如何避免?

  • 最頻繁的錯誤包括ArrayIndexOutOfBoundsException(數組越界)、 NullPointerException(空指針)、ClassCastException(強制類型轉換錯誤)、IllegalArgumentException(非法參數),以上異常都不需要捕獲,都屬於uncheckedException。

1.2 什麽樣的異常要求用戶一定要使用捕獲處理?

  • 繼承自Exception類中自定義的異常需要捕獲處理。

2. 處理異常使你的程序更加健壯

2.1 實驗總結。並回答:怎麽樣才能讓你的程序更加健壯?

  • 1.盡早釋放無用對象的引用。 2.定義字符串應該盡量使用 String str=”hello”; 的形式。 3.盡量少用靜態變量。 4.盡量避免在類的構造函數裏創建、初始化大量的對象。 5.不要在經常調用的方法中創建對象。

3. throw與throws

3.1 Integer.parsetInt一開始就有大量的拋出異常的代碼,這種做法有什麽好處?

  • 1.出錯信息可以很詳細。 2.讓用戶有效地發現錯誤。 3.出錯代碼與錯誤處理相分離。

3.2 結合自己編寫的程序與3.1,分析自己編寫的方法拋出異常時一般需要傳遞給調用者一些什麽信息?

  • 會將異常的結果顯示出來,告訴編程者出現該異常的理由,例如在7-3這道題給我們顯示了java.lang.IllegalArgumentException: begin:3 >= end:3,告訴我們錯誤的位置。

4. 用異常改進ArrayIntegerStack

4.1 結合6-3代碼,回答使用拋出異常的方式代表程序運行時出錯有什麽好處?比單純的返回錯誤值,有何優點?

  • 可以有效的發現錯誤,讓出錯代碼和出錯處理相分離。出錯信息可以很詳細(以對象形式包裝)

4.2 什麽時候該使用throw關鍵字?

  • 對於運行異常,我們不要應該使用throws來處理,對於受檢查的異常,編譯時無法通過,那麽使用throw或者try..catch...來處理。

4.3 如果一個方法內部的內碼拋出的是RuntimeException類型的異常,那麽方法聲明是否應該使用throws關鍵字,如果使用throws關鍵字聲明該方法拋出的異常,能給我們帶來什麽好處嗎?

  • RuntimeException是那些可能在Java虛擬機正常運行期間拋出的異常的超類。可能在執行方法期間拋出但未被捕獲的RuntimeException 的任何子類都無需在throws子句中進行聲明。它是Exception的子類。 throws用來聲明方法可能會拋出什麽異常,在方法名後,語法格式為:throws 異常類型1,異常類型2...異常類型n。可以加強程序的健壯性。

5. 函數題-多種異常的捕獲

5.1 結合6-1代碼,回答:一個try塊中如果可能拋出多種異常,且異常之間可能有繼承關系,捕獲時需要註意些什麽?

  • 子類的異常捕獲必須在父類之前。否則程序會崩潰

5.2 一個try塊中如果可能拋出多種異常,使用Java8的多重異常捕獲語法需要註意些什麽?

  • 盡量優先捕獲具體的異常,如果有異常間存在父類和子類的關系,那麽需要子類在上,父類在下。

6. 為如下代碼加上異常處理

6.1 改正代碼,讓其可正常運行。註1:裏面有多個方法均可能拋出異常。註2:要使用finally關閉資源。

  • 技術分享圖片

6.2 結束處理異常和使用finally關閉資源需要註意一些什麽?

  • 不要在前面的代碼中用System.exit(),不要關閉cpu,一旦finally中使用了return或throw語句,將會導致try塊、catch塊中的return、throw語句失效。。

6.3 使用Java7中的try-with-resources來改寫上述代碼實現自動關閉資源。簡述這種方法有何好處?

  • 關閉資源的語句簡潔明了不臃腫。不需要判斷是否為null。

7. 面向對象設計作業(分組完成,每組不超過3個同學)

7.1 該系統的使用者有誰?

  • 老師,學生,圖書管理人員。

7.2 主要功能模塊(不要太多)

  • 借出記錄,收還記錄,查詢模塊。

7.3 該系統的主要的類設計及類圖(可用)

  • 技術分享圖片

7.4 你準備如何存儲圖書信息、解決信息、讀者信息等

  • 使用ArryList數組來存儲信息。

3.碼雲及PTA

3.1. 碼雲代碼提交記錄

  • 技術分享圖片

3.2 截圖PTA題集完成情況圖

  • 技術分享圖片

  • 技術分享圖片

3.3 統計本周完成的代碼量

周次 總代碼量 新增代碼量 總文件數 新增文件數
5 221 221 4 4
6 487 226 10 6
7 837 350 14 4
8 1057 220 17 3
9 1289 232 21 4
10 1654 365 26 5
11 1989 335 32 6

201621123041java程序設計第十周學習總結