一.本周学习总结

  • 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容。

二.书面作业

本次PTA作业题集异常

1. 常用异常

结合题集题目7-1回答

  • 1.1 自己以前编写的代码中经常出现什么异常、需要捕获吗(为什么)?应如何避免?

    经常出现的异常有ArrayIndexOutOfBoundsExceptionNullPointException,因为他们都继承自RunTimeException,都属于Unchecked Exception,因而无需捕获;在写代码时注意这些问题,不要让下标超出数组大小,不要出现空指针等。

  • 1.2 什么样的异常要求用户一定要使用捕获处理?

    直接继承自Exception的异常都属于Checked Exception,都要使用捕获处理。

2. 处理异常使你的程序更加健壮

题集题目7-2

  • 2.1 实验总结。并回答:怎么样才能让你的程序更加健壮?

    本题中要求向数组中输入整数,但是可能输入的是非整型字符串,所以可能会出现异常。为了解决这个问题,于是使用try-catch去处理,这样就使得程序更健壮了。因此,在代码中遇到可能出现异常的地方,就用try-catch去处理就能保证程序的健壮。

3. throw与throws

题集题目7-3

阅读Integer.parsetInt源代码

  • 3.1 Integer.parsetInt一开始就有大量的抛出异常的代码,这种做法有什么好处?

    这样在出现异常时会抛出异常,会传递给调用者出现异常的原因,方便调用者去了解并改正。

  • 3.2 结合自己编写的程序与3.1,分析自己编写的方法抛出异常时一般需要传递给调用者一些什么信息?

    传递给调用者异常出现的原因,例如在PTA题目中输入存在很多可能的异常,于是先使用以下代码抛出异常,当出现异常时能让调用者知道出现异常的原因。

      if(begin>=end)
    throw new IllegalArgumentException("begin:"+begin+" >= end:"+end);
    if(begin<0)
    throw new IllegalArgumentException("begin:"+begin+" < 0");
    if(end>arr.length)
    throw new IllegalArgumentException("end:"+end+" > arr.length");

4. 用异常改进ArrayIntegerStack

题集题目6-3

  • 4.1 结合6-3代码,回答使用抛出异常的方式代表程序运行时出错有什么好处?比单纯的返回错误值,有何优点?

    抛出异常会给出代码异常的原因,更容易定位到有问题代码的地方;如果是单纯的返回错误值的方式可能会因为错误返回值与正确输出结果相同而造成难以发现问题的结果。

  • 4.2 如果一个方法内部的内码抛出的是RuntimeException类型的异常,那么方法声明是否应该使用throws关键字,如果使用throws关键字声明该方法抛出的异常,能给我们带来什么好处吗?

    可以不用,没使用throws时,出现异常时默认向上抛出直到虚拟机;使用throws时会抛出指定异常。

5. 函数题-多种异常的捕获

题集题目6-1

  • 5.1 结合6-1代码,回答:一个try块中如果可能抛出多种异常,且异常之间可能有继承关系,捕获时需要注意些什么?

    需要注意捕获顺序,先捕获子类异常再捕获父类异常,否则会编译错误。

  • 5.2 一个try块中如果可能抛出多种异常,使用Java8的多重异常捕获语法需要注意些什么?

    需要注意多种异常之间是否存在继承关系,存在则应先捕获子类再捕获父类。

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,请重新输入文件名,然后尝试重新打开。 如果是其他异常则提示打开或读取文件失败!

    注1:里面有多个方法均可能抛出异常。

    功能2:需要添加finally关闭文件。无论上面的代码是否产生异常,总要提示关闭文件ing。如果关闭文件失败,提示关闭文件失败!

  • 6.2 结合题集6-2代码,要将什么样操作放在finally块?为什么?使用finally关闭资源需要注意一些什么?

    将一定要执行的操作放在finally块,因为无论是否catch都会执行finally;使用finally关闭资源需要注意资源关闭时是否会出现异常,如果可能则要进行处理。

  • 6.3 使用Java7中的try-with-resources来改写上述代码实现自动关闭资源。简述这种方法有何好处?

    使用Java7中的try-with-resources改写上述代码实现自动关闭资源后就不用自己去关闭资源以及处理关闭资源过程中可能出现的异常,程序更健壮也更简洁。

7. 面向对象设计作业-图书馆管理系统(分组完成,每组不超过3个同学)

登录lib.jmu.edu.cn,对图书进行搜索。然后登录图书馆信息系统,查看我的图书馆。如果让你实现一个图书借阅系统,尝试使用面向对象建模。

  • 7.1 该系统的使用者有谁?

    用户、管理员

  • 7.2 主要功能模块(不要太多)及每个模块的负责人。下周每个人要提交自己负责的模块代码及运行视频。

    • 张苏涛:Books类、Library类
    • 吴福强:User类、Administrator类
  • 7.3 该系统的主要的类设计及类图(可用)

  • 7.4 你准备如何存储图书信息、解决信息、读者信息等。

    所有信息存在文件中,一旦登陆系统就将对应的文件信息读取到动态数组中操作,退出系统时再全导入到文件中。

三.码云及PTA

  • 3.1. 码云代码提交记录

  • 3.2 截图PTA题集完成情况图

  • 3.3 统计本周完成的代码量

周次 总代码量 新增代码量 总文件数 新增文件数
1 193 193 6 6
2 625 432 35 29
3 1076 451 41 6
4 1472 396 47 6
5 1932 460 53 6
6 2235 303 57 4
7 2651 416 62 5
8 2895 244 67 5
9 3275 380 73 6
10 3544 269 81 8

201621123023《Java程序设计》第10周学习总结的更多相关文章

  1. 2018面向对象程序设计(Java)第10周学习指导及要求

    2018面向对象程序设计(Java)第10周学习指导及要求(2018.11.1-2018.11.4)  学习目标 理解泛型概念: 掌握泛型类的定义与使用: 掌握泛型方法的声明与使用: 掌握泛型接口的定 ...

  2. 面向对象程序设计(JAVA) 第10周学习指导及要求

    2019面向对象程序设计(Java)第10周学习指导及要求 (2019.11.1-2019.11.4)   学习目标 1.掌握java异常处理技术: 2.了解断言的用法: 3.了解日志的用途: 4.掌 ...

  3. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  4. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  5. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  6. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  7. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  8. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  9. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

  10. 20155304田宜楠 2006-2007-2 《Java程序设计》第二周学习总结

    20155304田宜楠 2006-2007-2 <Java程序设计>第二周学习总结 教材学习内容总结 一.类型与变量 1.类型 整数: 可细分为为short整数(占2字节),int整数(占 ...

随机推荐

  1. Guide to installing 3rd party JARs

    Although rarely, but sometimes you will have 3rd party JARs that you need to put in your local repos ...

  2. 迷你MVVM框架 avalonjs 0.93发布

    这段时间吸取@limodou, @东灵等人的意见,做了以下改进 重构isArrayLike,提高avalon.each的性能,原来avalon.each是依赖于isArrayLike来判定是循环普通对 ...

  3. confd test

    vi /etc/confd/confd.toml backend = "consul"confdir = "/etc/confd"log-level = &qu ...

  4. 搭建https+nginx服务器

    搭建https+nginx的服务器,主要是安装ngnix和使用openssl生成自签证书,并在nginx中配置的过程   一.安装环境 1.安装opnssl(ssl支持) https://www.op ...

  5. go_Map

    go语言中map使用哈希表,必须可以比较相等 除了slice,map,function的内建类型都可以作为key Struct类型不包括上述字段,也可作为key map中的key是无序的 packag ...

  6. 一些js知识点总结

    1. 函数声明与函数表达式 解析器在像执行环境中加载数据时,会先读取函数声明,并使其在执行任何代码之前都可以访问,对于函数表达式,必须等到解析器执行到它所在的代码行,才会真正被执行. 例: alert ...

  7. 【poj2411】Mondriaan's Dream 状态压缩dp

    AC传送门:http://vjudge.net/problem/POJ-2411 [题目大意] 有一个W行H列的广场,需要用1*2小砖铺盖,小砖之间互相不能重叠,问有多少种不同的铺法? [题解] 对于 ...

  8. 307. Range Sum Query - Mutable查询求和的范围(可变)

    [抄题]: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inc ...

  9. SVG DOM常用属性和方法介绍(1)

    12.2  SVG DOM常用属性和方法介绍 将以Adobe SVG Viewer提供的属性和方法为准,因为不同解析器对JavaScript以及相关的属性和方法支持的程度不同,有些方法和属性是某个解析 ...

  10. 使用windows server2012时FileZilla客户端连接时报150 Opening data channel for directory listing of "/" 响应:425 Can't open data connection

    425 Can't open data connection 和 读取目录列表失败 问题解决 这个问题主要是由于使用Passive Mode模式造成的,解决这个问题很简单: 1.在ftp服务软件中设置 ...