20145230《Java程序设计》第5周学习总结
20145230 《Java程序设计》第5周学习总结
教材学习内容
本周主要学习的内容是关于异常处理的,感觉这部分内容对我们这种初学者
来说非常重要。举个例子,倘若你在编写一个Java程序的时候,编译发生错误,提示了你一堆看不懂的东西,这时自己肯定会慌了手脚,不知道怎么处理这种状况。而这章的目的我认为就在于教会我们如何处理一些Java编程中的异常情况。首先,我知道了try与catch的运用方法:JVM会尝试执行try区块中的程序代码,如果发生错误,执行流程会跳离错误发生点,然后比较catch括号中声明的类型,是否符合被抛出的错误对象类型,如果是,就执行catch中程序代码。简而言之,有了try和catch为我们的代码保驾护航,我们即使犯了错误,Java也能更加友好地给我们显示出来。然后,书上讲到了异常继承结构。我的理解是:如果编程时遇到了Error,那就代表我们严重系统错误。在Error对象抛出时,我们基本不用处理。而对于程序本身的错误,我们要使用Exception或其子类来实现。我们在操作对象的过程中如果会抛出受检异常,但目前环境信息不足以处理异常,无法用try和catch处理时,客户端可以依据当时的环境信息进行处理,当然,异常处理也会给我们的程序编写带来一定的麻烦,因为有些错误我们根本无从下手解决。对于finally,在英文上面,它可以理解为最后的意思,在Java中,它可以与try、catch搭配使用,无论try区块中有无异常,若攥写有finally区块,则finally区块一定会执行。我们在使用throw重抛异常时,异常的追踪堆栈起点,仍是异常的发生根源,而不是重抛异常的地方。如果想要让异常堆栈起点为重抛异常的地方,可以使用fillInStackTrace(),这个方法会重新装填异常堆栈,将起点设为重抛异常的地方,并返回Throwable对象。
教材学习中的问题和解决过程
在学习异常继承架构的时候,书上有这样一个问题我不明白:为什么不能
int ch=System.in.read();
为什么我们一定要处理java.io.IOException。书上的解释是编译程序认为调用System.in.read()时有可能发生错误,要求你一定要在程序中明确处理错误。为什么我们一定要明确处理错误呢?我很不明白。
通过看书,我了解到。IOException是Exception的子类,所以编译程序要求我们明确适用于法加以处理。受检异常存在的目的,在于API设计者事先某方法时,某些条件成立时会引发错误,而且认为调用方法的客户端有能力处理错误,要求编译程序提醒客户顿必须明确处理错误,不然不可以通过编译,API客户端无权选择要不要处理,这应该就是问题的根因所在。
代码调试中的问题和解决过程
遇到了如下的问题:

后来我通过看书才知道:这是因为这个程序已经超出了JVM的内存空间,自然就会报出Error了,因此对于Error对象抛出时,基本上不用处理,任其传播至JVM为止。
本周代码托管截图

其他(感悟、思考等,可选)
本周学习了Java自己最大的收获就是知道了一些Java程序编写中异常处理的办法,例如什么try、catch什么的,什么throws,还有堆栈追踪。感觉学了这一章后,虽然自己仍然是一头雾水,但我知道了一些
基本的东西,也应该能在以后的Java编程中处理一些简单的错误。我们学习了这么章的知识,看上去好像自己学了很多东西,实际上并没有,想要把Java知识充分学透,感觉还是要不停不停敲代码,日复一日地敲代码。反正学习并没有什么途径,就是不停地为之奋斗,一直坚持下去,才能做到精通一门儿语言。学Java不能靠一时的兴趣,而需要我们不停地探索,才能有一定的收获。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 2000 行 | 25篇 | 400小时 | |
| 第一周 | 100/100 | 2/2 | 20/20 | |
| 第二周 | 100/200 | 2/4 | 20/40 | |
| 第三周 | 50/250 | 1/5 | 20/60 | |
| 第四周 | 564/814 | 2/7 | 30/90 | |
| 第五周 | 623/1437 | 1/8 | 30/120 | 了解到了程序中的异常处理 |
参考资料
20145230《Java程序设计》第5周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 第一百六十四节,jQuery,常规选择器
jQuery,常规选择器 学习要点: 1.简单选择器 2.进阶选择器 3.高级选择器 jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元 素的标签名.属性名. ...
- hadoop2.4.1伪分布模式部署
hadoop2.4.1伪分布模式部署 (承接上一篇hadoop2.4.1-src的编译安装继续配置:http://www.cnblogs.com/wrencai/p/3897438.html) 感谢: ...
- 一些常用的html css整理--文本长度截取
div+css设置列表div超出部分显示...(单行文本) width:200px; //指定宽度: overflow:hidden; //将超出内容隐藏 text-overflow:ellipsis ...
- HDU4771(2013 Asia Hangzhou Regional Contest )
http://acm.hdu.edu.cn/showproblem.php?pid=4771 题目大意: 给你一幅图(N*M)“@”是起点,"#"是墙,“.”是路,然后图上有K个珠 ...
- 【BZOJ1812】[Ioi2005]riv 树形DP
[BZOJ1812][Ioi2005]riv Description 几乎整个Byteland王国都被森林和河流所覆盖.小点的河汇聚到一起,形成了稍大点的河.就这样,所有的河水都汇聚并流进了一条大河, ...
- jQuery之获取select选中的值
本来以为jQuery("#select1").val();是取得选中的值, 那么jQuery("#select1").text();就是取得的文本. 这是不正确 ...
- 如何转换指定 波长 到 RGB 颜色?
//指定波长转换成RGBA颜色 std::vector<int> lambdaToColor(double lambda,double gamma = 0.8,double intensi ...
- [NOIP2018TG]旅行
[NOIP2018TG]旅行 树很简单,对每个点sort儿子,贪心走就行了 基环树呢? 如果是1e5可能不太好做 但是5000的话枚举断边就可以\(n^2\)了 #include<bits/st ...
- 插叙LTE-2
LTE TDD与LTE FDD技术简介和比较 标签: 频分双工(FDD) 时分双工(TDD) LTE 摘要:UTRA 的长期演进(Long Term Evolution ,LTE) 技术存在LTE ...
- Linux用户相关文件之密码文件
1.文件地址: /etc/shadow ----------. 1 root root 842 10月 6 13:09 /etc/shadow 2.文件内容: xiaol_1:$6$NdCAnK3y$ ...