1. 本周学习总结

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



2. 书面作业

本次PTA作业题集异常

1.常用异常

题目5-1

1.1 截图你的提交结果(出现学号)



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

答:经常出现空指针问题、数组越界这样的RuntimeException异常,由于这类异常可由系统检测,所以不需要捕获,需要尽量改进我们的代码避免此类错误的出现。

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

答:Exception类及其他子类,必须使用try{}catch(){}捕获处理。

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

题目5-2

2.1 截图你的提交结果(出现学号)



2.2 实验总结

答:利用for循环输入大小为n的数组,try-catch捕获处理发生的NumberFormatException异常,进行剔除重新输入,最后使用Arrays.toString输出数组中的内容。

3.throw与throws

题目5-3

3.1 截图你的提交结果(出现学号)

3.2 阅读Integer.parsetInt源代码,结合3.1说说抛出异常时需要传递给调用者一些什么信息?

4.函数题

题目4-1(多种异常的捕获)

3.1 截图你的提交结果(出现学号)



3.2 一个try块中如果可能抛出多种异常,捕获时需要注意些什么?

答:需要注意子类异常必须放在父类异常的前面,在该题中的体现就是NumberFormatException异常和IllegalArgumentException异常必须放在Exception异常之前,否则异常无法正确捕获。

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

    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));//打印数组内容

5.1 改正代码,让其可正常运行。注1:里面有多个方法均可能抛出异常。注2:要使用finally关闭资源。

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

运行结果

5.2 使用Java7中的try-with-resources来改写上述代码实现自动关闭资源.

	public static void main(String[] args) throws Exception {
byte[] content = null;
try (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));// 打印数组内容
} catch (FileNotFoundException e) {
System.out.println(e);
}
}

运行结果: 同上

6.重点考核:使用异常改进你的购物车系统(未提交,得分不超过6分)

举至少两个例子说明你是如何使用异常处理机制让你的程序变得更健壮。

说明要包含2个部分:1.问题说明(哪里会碰到异常)。2.解决方案(关键代码)

3. 码云上代码提交记录

题目集:异常

3.1. 码云代码提交记录

在码云的项目中,依次选择“统计-Commits历史-设置时间段”, 然后搜索并截图

201521123068 《java程序设计》第9周学习总结的更多相关文章

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

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

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

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

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

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

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

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

  5. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  6. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  7. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

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

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

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

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

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

    20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...

随机推荐

  1. 【LeetCode】数组-3(605)-种花问题( 1 的两侧不能有 1 )

    开始的思路:首先统计需要种几只花,用花的数目统计连续 0 的个数.... ...[囧]突然觉得情况有点复杂啊,有连续的又有分散的怎么能统计全呢? 好吧这里喔偷偷的瞄了一眼参看答案... ...(就一眼 ...

  2. C语言极易出错的地方(更新中)

    1 时刻记住C语言风格的字符串是以'\0'结尾,无论是在内存的分配还是字符串的赋值上都需要注意

  3. JMeter网站测试分析

     WEB类型: User Driver:以用户量作为衡量系统性能的主要指标的系统,典型如IM系统.企业 内部业务系统: TPS-Driver:以tps作为衡量系统性能的主要指标的系统,典型的如消息系统 ...

  4. Go 语言,开源服务端代码自动生成 框架 - EasyGoServer

    EasyGoServer 作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblog ...

  5. return 的返回值与结束功能

    前言:大家好~我是阿飞~在js中return是很重要的基础.一定要彻底掌握理解它哦.否则js学习到中后期很容易懵逼的+_+ 什么是return? 1.在js中return是一个表达式语句,如果后面什么 ...

  6. 45、concurrent.futures模块与协程

    concurrent.futures  —Launching parallel tasks    concurrent.futures模块同时提供了进程池和线程池,它是将来的使用趋势,同样我们之前学习 ...

  7. JavaScript+html5 canvas实现本地截图教程

    这篇文章主要介绍了JavaScript+html5 canvas实现本地截图教程,对截图功能感兴趣的小伙伴们可以参考一下 最近有时间了解了下html5的各API,发现新浪微博的头像设置是使用canva ...

  8. 再起航,我的学习笔记之JavaScript设计模式17(模板方法模式)

    模板方法模式 由模板方法模式开始我们正式告别结构型设计模式,开始行为型设计模式的学习分享 行为型设计模式用于不同对象之间职责划分或算法抽象,行为型设计模式不仅仅涉及类和对象,还涉及类或对象之间的交流模 ...

  9. Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题

    Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...

  10. spring mvc:exclude-mapping错误提示

    今天搭建一个java web项目时,增加了一个登录的拦截器,主要功能就是未登录的用户无法访问系统的任何页面. 先说明下我的web项目springmvc的版本以及刚开始配置的拦截器: springmvc ...