1. 程式人生 > >201621123021《JAVA程序設計》第十周學習總結

201621123021《JAVA程序設計》第十周學習總結

為什麽 關閉 目標 發生 聲明 級別 img tab 數組元素

1. 本周學習總結

技術分享圖片

2. 書面作業

1. 常用異常

結合題集題目7-1回答

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

  • 我以前編寫代碼是經常遇到諸如題目所示數組越界、空指針、強轉失敗、數字格式出錯等情況,我認為這些現象需要捕獲。
  • 為了避免這些現象可使用try-catch語句捕獲異常,然後具體請款具體處理。

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

  • 我們在遇到checked exception的時候,我們需要對其進行捕獲處理,如文件類File就是checked exception需要進行捕獲處理。

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

題集題目7-2

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

  • 本實驗容易發生數組元素格式非int型的情況,為了使程序更加的健壯可以使用catch語句當輸入元素轉化成Integer失敗時,使用catch捕捉錯誤,然後重新輸入元素。

3. throw與throws

題集題目7-3

閱讀Integer.parsetInt源代碼

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

  • Interger.parseInt一開始就拋出各種異常能夠預防各種異常情況,使函數不必要調用,可以節省內存和CPU資源占用,防止資源浪費,節省代碼運行時間。

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

  • 本題所拋出異常是要告訴調用者此函數,Findmax就是要要使用數組的下標而數組的下標必須不能越界,同時此函數開始下標要小於結束下標否則函數拋出邏輯錯誤。

4. 用異常改進ArrayIntegerStack

題集題目6-3

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

  • 使用拋出異常的方式可以使程序異常交給調用者處理,是程序更加健壯。
  • 相對於單純返回錯誤值而言,拋出異常更能使調用者改正錯誤。

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

  • RuntimeException可以理解成為是運行時異常是一種錯誤,編譯器會自行處理這種錯誤。
  • 如果我們使用throws方法來拋出異常可以把這種錯誤拋出給上一層調用者,可以使程序更加靈活。

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

題集題目6-1

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

  • 要註意不要異常繼承關系,註意他們之間的級別,尤其註意Exception是所有異常的父類,捕獲時必須放在最後。

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

  • 需要註意catch異常時,異常類的各種繼承關系,其繼承說明其越具體,上面和下面的捕獲從具體到泛化。

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

byte[] content = null;
FileInputStream fis = new FileInputStream("testfis.txt");
int bytesAvailabe = fis.available();//獲得該文件可用的字節數
if(bytesAvailabe>0){
    content = new byte[bytesAvailabe];//創建可容納文件大小的數組
    fis.read(content);//將文件內容讀入數組
}
System.out.println(Arrays.toString(content));//打印數組內容

6.1 改正代碼,並增加如下功能。當找不到文件時,需提示用戶找不到文件xxx,請重新輸入文件名,然後嘗試重新打開。 如果是其他異常則提示打開或讀取文件失敗!。

技術分享圖片

6.2 結合題集6-2代碼,要將什麽樣操作放在finally塊?為什麽?使用finally關閉資源需要註意一些什麽?

  • 根據題集6-2代碼可知但我們要使用finally關閉資源時,需要使用try-catch語句來關閉,因為只有這樣才能確定是否拋出的異常時IOException需要留給調用者解決。

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

  • try-with-resources是一種try-catch延伸的表達方式,具體是創建一個輸出流對象,將目標賦值給它,try-catch語句執行結束時,資源也自動關閉,由此可知這樣做可以簡化代碼的結構,同時可我們避免忘記關閉文件。

7. 面向對象設計作業-圖書館管理系統

7.1 該系統的使用者有誰?

  • 圖書管理員,查閱者。

7.2 主要功能模塊(不要太多)及每個模塊的負責人。

負責人模塊
鄭玉波 搜索書籍,借書
占恒 登陸,查看信息
簡卓林 註冊,還書

7.3 該系統的主要的類設計及類圖

技術分享圖片

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

  • 我準備是用文件流的方法來存儲圖書信息、解決信息等。

3.碼雲及PTA

3.1. 碼雲代碼提交記錄

技術分享圖片

3.2 截圖PTA題集完成情況圖

技術分享圖片

技術分享圖片

3.3 統計本周完成的代碼量

周次總代碼量新增代碼量總文件數新增文件數
1 0 0 0 0
2 0 0 0 0
3 0 0 0 0
4 437 437 7 7
5 905 468 13 6
6 1294 389 21 8
7 1678 384 30 9
8 2184 506 42 12
9 2678 494 56 14
10 3126 448 74 18

201621123021《JAVA程序設計》第十周學習總結