日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

201521123011 《java程序设计》 第9周学习总结

發(fā)布時(shí)間:2025/7/14 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 201521123011 《java程序设计》 第9周学习总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 本周學(xué)習(xí)總結(jié)

1.1 以你喜歡的方式(思維導(dǎo)圖或其他)歸納總結(jié)異常相關(guān)內(nèi)容。

2. 書面作業(yè)

本次PTA作業(yè)題集異常
1.常用異常
題目5-1
1.1 截圖你的提交結(jié)果(出現(xiàn)學(xué)號(hào))
1.2 自己以前編寫的代碼中經(jīng)常出現(xiàn)什么異常、需要捕獲嗎(為什么)?應(yīng)如何避免?
1.3 什么樣的異常要求用戶一定要使用捕獲處理?

答:
1.1

1.2
會(huì)出現(xiàn)數(shù)組越界等異常,不需要捕獲,因?yàn)閿?shù)組越界屬于RuntimeException,不需要捕獲。只需要修改數(shù)組長(zhǎng)度就可以了。

1.3
Error(嚴(yán)重錯(cuò)誤):無(wú)需關(guān)心
RuntimeException:無(wú)需try-catch
Exception其他子類:必須try-catch處理

2.處理異常使你的程序更加健壯
題目5-2
2.1 截圖你的提交結(jié)果(出現(xiàn)學(xué)號(hào))
2.2 實(shí)驗(yàn)總結(jié)

答:
2.1

2.2
在讀取字符時(shí)用了String inputInt = sc.next();所以在輸入時(shí)需要多讀取一個(gè)enter鍵,不然會(huì)無(wú)法出現(xiàn)排序的答案

在使用try-catch,只需要將出現(xiàn)異常的部分放在其中就行了。

try {int y = Integer.parseInt(inputInt);x[i] = y;i++;} catch (Exception e)

3.throw與throws
題目5-3
3.1 截圖你的提交結(jié)果(出現(xiàn)學(xué)號(hào))
3.2 閱讀Integer.parsetInt源代碼,結(jié)合3.1說(shuō)說(shuō)拋出異常時(shí)需要傳遞給調(diào)用者一些什么信息?

答:
3.1

3.2

public static int parseInt(String s, int radix)throws NumberFormatException{/** WARNING: This method may be invoked early during VM initialization* before IntegerCache is initialized. Care must be taken to not use* the valueOf method.*/if (s == null) {throw new NumberFormatException("null");}if (radix < Character.MIN_RADIX) {throw new NumberFormatException("radix " + radix +" less than Character.MIN_RADIX");}if (radix > Character.MAX_RADIX) {throw new NumberFormatException("radix " + radix +" greater than Character.MAX_RADIX");}int result = 0;boolean negative = false;int i = 0, len = s.length();int limit = -Integer.MAX_VALUE;??//limit?默認(rèn)初始化為?最大正整數(shù)的??負(fù)數(shù)?,假如字符串表示的是正數(shù),??//那么result(在返回之前一直是負(fù)數(shù)形式)就必須和這個(gè)最大正數(shù)的負(fù)數(shù)來(lái)比較,判斷是否溢出?int multmin;int digit;if (len > 0) {?//?首先是對(duì)第一個(gè)位置判斷,是否含有正負(fù)號(hào)??char firstChar = s.charAt(0);if (firstChar < '0') { // Possible leading "+" or "-"if (firstChar == '-') {negative = true;limit = Integer.MIN_VALUE;} else if (firstChar != '+')throw NumberFormatException.forInputString(s);if (len == 1) // Cannot have lone "+" or "-"throw NumberFormatException.forInputString(s);i++;}multmin = limit / radix;//?這個(gè)是用來(lái)判斷當(dāng)前的?result?在接受下一個(gè)字符串位置的數(shù)字后會(huì)不會(huì)溢出。while (i < len) {// Accumulating negatively avoids surprises near MAX_VALUEdigit = Character.digit(s.charAt(i++),radix);if (digit < 0) {throw NumberFormatException.forInputString(s);}if (result < multmin) {throw NumberFormatException.forInputString(s);}result *= radix;if (result < limit + digit) {throw NumberFormatException.forInputString(s);}result -= digit;}} else {throw NumberFormatException.forInputString(s);}return negative ? result : -result;}

以上源代碼告訴我們r(jià)adix?要在(2~36)范圍內(nèi),不然會(huì)拋出NumberFormatException異常。Integer.parsetInt會(huì)根據(jù)不同的情況拋出異常,來(lái)告訴用戶出錯(cuò)的地方以方便修改。比如5-3中輸入時(shí)begin不得小于0,end不得大于arr.length,否則拋出異常

4.函數(shù)題
題目4-1(多種異常的捕獲)
4.1 截圖你的提交結(jié)果(出現(xiàn)學(xué)號(hào))
4.2 一個(gè)try塊中如果可能拋出多種異常,捕獲時(shí)需要注意些什么?

答:
4.1

4.2

catch(Exception e){System.out.println(e);}

當(dāng)try塊中如果可能拋出多種異常時(shí),如果用catch一個(gè)個(gè)捕獲會(huì)很麻煩,我們可以發(fā)現(xiàn)很多異常都是Exception的子類,所以只需要用catch(Exception e)就可以捕捉所有的異常。
以下是通過(guò)百度找到的常見(jiàn)的繼承關(guān)系。

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

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

5.1 改正代碼,讓其可正常運(yùn)行。注1:里面有多個(gè)方法均可能拋出異常。注2:要使用finally關(guān)閉資源。
5.2 使用Java7中的try-with-resources來(lái)改寫上述代碼實(shí)現(xiàn)自動(dòng)關(guān)閉資源.

答:
5.1

import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Arrays;public class Main {public static void main(String[] args) throws IOException {byte[] content = null;FileInputStream fis=null;try{fis= new FileInputStream("testfis.txt");int bytesAvailabe = fis.available();//獲得該文件可用的字節(jié)數(shù)if(bytesAvailabe>0){content = new byte[bytesAvailabe];//創(chuàng)建可容納文件大小的數(shù)組fis.read(content);//將文件內(nèi)容讀入數(shù)組}}catch(FileNotFoundException e){System.out.println(e);}catch(IOException e){System.out.println(e);}finally{if(fis!=null)try{fis.close();}catch(Exception e){System.out.println(e);}}System.out.println(Arrays.toString(content));//打印數(shù)組內(nèi)容} }

5.2

public static void main(String[] args) throws IOException {byte[] content = null;try(FileInputStream fis = new FileInputStream("testfis.txt");) {int bytesAvailabe = fis.available();// 獲得該文件可用的字節(jié)數(shù)if (bytesAvailabe > 0) {content = new byte[bytesAvailabe];// 創(chuàng)建可容納文件大小的數(shù)組fis.read(content);// 將文件內(nèi)容讀入數(shù)組}System.out.println(Arrays.toString(content));// 打印數(shù)組內(nèi)容} }

6.重點(diǎn)考核:使用異常改進(jìn)你的購(gòu)物車系統(tǒng)(未提交,得分不超過(guò)6分)
舉至少兩個(gè)例子說(shuō)明你是如何使用異常處理機(jī)制讓你的程序變得更健壯。
說(shuō)明要包含2個(gè)部分:1. 問(wèn)題說(shuō)明(哪里會(huì)碰到異常)。2.解決方案(關(guān)鍵代碼)

遭遇的問(wèn)題1.可能因?yàn)檩斎霟o(wú)效數(shù)字編號(hào)到導(dǎo)致異常。2.也可能有文件已經(jīng)結(jié)束異常、文件未找到異常。
解決問(wèn)題一:

case 1: // 購(gòu)買商品 int index;try {System.out.print("請(qǐng)輸入你要夠買的商品的編號(hào):"); Num = input.nextInt(); index = -1; for (int x = 0; x < quotID.length; x++) { // 在庫(kù)存中循環(huán)找到需購(gòu)買商品的編號(hào) if (quotID[x] == 0) { break; } if (quotID[x] == Num) { index = x; break; } }} catch (NumberFormatException ex) {System.out.println(ex);}

3. 碼云上代碼提交記錄

題目集:異常
3.1. 碼云代碼提交記錄

轉(zhuǎn)載于:https://www.cnblogs.com/jiaowoxiaotiancai/p/6747160.html

總結(jié)

以上是生活随笔為你收集整理的201521123011 《java程序设计》 第9周学习总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。