1. 本周学习总结

1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容。

2. 书面作业

1. 常用异常

1.1 自己以前编写的代码中经常出现什么异常、需要捕获吗(为什么)?应如何避免?
有访问数组异常,类型转换异常,空指针异常等等,这些异常都属于不需要捕获的,不需要去捕获,可以打代码时认真细致一点去避免这些问题,
1.2 什么样的异常要求用户一定要使用捕获处理?
除了RuntimeException之外的属于Checked Exception异常都需要捕获。

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

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

for (int i = 0; i <n ;) {try {Integer a = Integer.parseInt(sc.next());arr[i] = a;i++;}catch (NumberFormatException e{System.out.println(e);}
}
观察这道题的输入,不管我们输入是整数还是非整数都会用Integer.parseInt处理输入,这就会导致错误,所以使用try-catch处理,使代码更健壮           

3. throw与throws

3.1 Integer.parsetInt一开始就有大量的抛出异常的代码,这种做法有什么好处?
不管什么错误,抛出的都是同一类异常,也可以提供有效的解决方法,使代码更健壮。
3.2 结合自己编写的程序与3.1,分析自己编写的方法抛出异常时一般需要传递给调用者一些什么信息?
抛出异常时需要传递给调用者begin必须小于end,begin不得小于0等等异常的原因,让调用者知道为什么会异常,从而去改。

4. 用异常改进ArrayIntegerStack

4.1 结合6-3代码,回答使用抛出异常的方式代表程序运行时出错有什么好处?比单纯的返回错误值,有何优点?
使用抛出异常的方法会在代码错误时立即终止运行抛出异常,调用者就知道哪里错可以去更改,如果仅仅是返回错误值无法更清晰的知道错误在哪从而去改。
4.2 如果一个方法内部的内码抛出的是RuntimeException类型的异常,那么方法声明是否应该使用throws关键字,如果使用throws关键字声明该方法抛出的异常,能给我们带来什么好处吗?
可以不throws,因为RuntimeException不是必须被捕获的,不一定要抛出异常。
好处是可以立即抛出异常直观知道错误点在哪去修改,无需捕获异常

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

5.1 结合6-1代码,回答:一个try块中如果可能抛出多种异常,且异常之间可能有继承关系,捕获时需要注意些什么?
注意先从子类开始捕捉,然后一步步最后到父类异常。
5.2 一个try块中如果可能抛出多种异常,使用Java8的多重异常捕获语法需要注意些什么?
子类异常的捕获一定要在任何父类异常之前

6. 为如下代码加上异常处理

6.1改正代码,并增加如下功能。当找不到文件时,需提示用户找不到文件xxx,请重新输入文件名,然后尝试重新打开。 如果是其他异常则提示打开或读取文件失败!。
6.2 结合题集6-2代码,要将什么样操作放在finally块?为什么?使用finally关闭资源需要注意一些什么?
注意finall中的代码一定会被执行,所以就把关闭资源的操作放到这里,注意finally中也可能出现异常,需要try-catch
6.3 使用Java7中的try-with-resources来改写上述代码实现自动关闭资源。简述这种方法有何好处?

public class Jiangtest {public static void main(String[] args) {byte[] content = null;try(FileInputStream fis = new FileInputStream("testfis.txt")){int bytesAvailabe = fis.available();//获得该文件可用的字节数if(bytesAvailabe>0){content = new byte[bytesAvailabe];//创建可容纳文件大小的数组fis.read(content);//将文件内容读入数组}}catch(Exception e){System.out.println(e);}System.out.println(Arrays.toString(content));}
}

自动帮我们调用 close 方法释放资源,更为方便,代码更为简洁

3.码云及PTA

3.1. 码云代码提交记录

3.2 截图PTA题集完成情况图


3.3 统计本周完成的代码量


转载于:https://www.cnblogs.com/JIANGBH/p/7895221.html

201621123015《Java程序设计》第10周学习总结相关推荐

  1. 20155227 2016-2017-2 《Java程序设计》第九周学习总结

    20155227 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 JDBC简介 JDBC全名Java DataBase Connectivity,是java联 ...

  2. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

  3. 20155226 2016-2017-2 《Java程序设计》第一周学习总结

    20155226 2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 第一周主要学习了一二章的内容,也浏览了剩余章节,以下是本周主要学习内容总结 1.首先了解了[ ...

  4. 20175227张雪莹 2018-2019-2 《Java程序设计》第九周学习总结

    20175227张雪莹 2018-2019-2 <Java程序设计>第九周学习总结 教材学习内容总结 第十一章 JDBC数据库操作 MySQL数据库管理系统 下载安装MySQL 若下载的是 ...

  5. 20155210潘滢昊 2016-2017-2《Java程序设计》第一周学习总结

    20155210 2016-2017-2<Java程序设计>第一周学习总结 教材学习内容总结 1.1.1: 本节主要讲了Java的由来,1995年5月23日是Java公认的诞生日.还有版本 ...

  6. 20175317 《Java程序设计》第一周学习总结

    20175317 <Java程序设计>第一周学习总结 教材学习内容总结 本周学习了Java大致的开发步骤,完成了课件自带的习题. 学习了在windows与Linux系统下不同的编译方法,掌 ...

  7. 20172318 2016-2017-2 《Java程序设计》第一周学习总结

    20172318 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 在教材中基本明白了计算机系统的运行方式,了解了对于高级语言是使用是掌握好编程的关键,掌握了一 ...

  8. 20155303 2016-2017-2 《Java程序设计》第二周学习总结

    20155303 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 『注意』 "//"为单行批注符: "/*"与&quo ...

  9. 20175208 《Java程序设计》第九周学习总结

    20175208 2018-2019-2 <Java程序设计>第九周学习总结 一.教材学习内容总结: 第11章 JDBC与MySQL数据库 MySQL数据库管理系统 MySQL数据库管理系 ...

  10. 20175204 张湲祯 2018-2019-2《Java程序设计》第九周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第九周学习总结 教材学习内容总结 -第十一章JDBC和MySQL数据库要点: 1.下载MySQL和客户端管理工具navi ...

最新文章

  1. 网页开发 与数据联动的图_零基础学习数据可视化pyecharts人物关系图开发
  2. 自学web前端的方法都有哪些?新手怎么学HTML5
  3. MySQL报错解决方案:2013-Lost connection to MySQL server
  4. ServiceStack.Redis的问题与修正
  5. zuul默认的路由规则及禁用路由规则
  6. Aixs2发布webservice服务
  7. 连接查询 左连接 右连接 内连接 1112 sqlserver
  8. Camera 图像处理原理分析
  9. 安阳市2021年高考成绩查询,2021安阳市地区高考成绩排名查询,安阳市高考各高中成绩喜报榜单...
  10. codeblocks 终端设置
  11. 解决“无法删除文件:无法读源文件或磁盘”
  12. python爬楼梯递归_爬楼梯(Python3)
  13. 俄亥俄州立大学计算机科学转学成功,录取捷报|努力定有回报,斩获俄亥俄州立计算机转学录取...
  14. java验证密码_java实现验证用户账号密码的功能
  15. 微软反linux广告图片,一张地铁站“前程无忧广告”的图片引发网友热议 官方:虚假图片...
  16. 原生openwrt+极路由4+路由模式光猫+中继光猫wifi+设置ipv6上网
  17. 【苹果相册推】您只需使用证书并发布证书描述文件(无需发布)上传PEM范例文件
  18. C语言简单递归实现字符串逆序输出
  19. intellij idea 2016破解方法
  20. STM32F407 SPI SD卡驱动的验证

热门文章

  1. 3-3 编程练习:jQuery键盘事件案例
  2. Crontab作业时间设置
  3. SPOJ COT Count on a tree(主席树+倍增lca)
  4. Spring3.0包描述
  5. mysql 主从同步,双主同步,如果服务器意外挂机,不同步怎么办
  6. 函数遍历IOS中block的使用
  7. [转]VI/VIM的键盘图
  8. 获得显示器设置的分辨率
  9. 算法题存档2020425
  10. akka一些邮箱的实现