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周学习总结的更多相关文章

  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. 第一百六十四节,jQuery,常规选择器

    jQuery,常规选择器 学习要点: 1.简单选择器 2.进阶选择器 3.高级选择器 jQuery 最核心的组成部分就是:选择器引擎.它继承了 CSS 的语法,可以对 DOM 元 素的标签名.属性名. ...

  2. hadoop2.4.1伪分布模式部署

    hadoop2.4.1伪分布模式部署 (承接上一篇hadoop2.4.1-src的编译安装继续配置:http://www.cnblogs.com/wrencai/p/3897438.html) 感谢: ...

  3. 一些常用的html css整理--文本长度截取

    div+css设置列表div超出部分显示...(单行文本) width:200px; //指定宽度: overflow:hidden; //将超出内容隐藏 text-overflow:ellipsis ...

  4. HDU4771(2013 Asia Hangzhou Regional Contest )

    http://acm.hdu.edu.cn/showproblem.php?pid=4771 题目大意: 给你一幅图(N*M)“@”是起点,"#"是墙,“.”是路,然后图上有K个珠 ...

  5. 【BZOJ1812】[Ioi2005]riv 树形DP

    [BZOJ1812][Ioi2005]riv Description 几乎整个Byteland王国都被森林和河流所覆盖.小点的河汇聚到一起,形成了稍大点的河.就这样,所有的河水都汇聚并流进了一条大河, ...

  6. jQuery之获取select选中的值

    本来以为jQuery("#select1").val();是取得选中的值, 那么jQuery("#select1").text();就是取得的文本. 这是不正确 ...

  7. 如何转换指定 波长 到 RGB 颜色?

    //指定波长转换成RGBA颜色 std::vector<int> lambdaToColor(double lambda,double gamma = 0.8,double intensi ...

  8. [NOIP2018TG]旅行

    [NOIP2018TG]旅行 树很简单,对每个点sort儿子,贪心走就行了 基环树呢? 如果是1e5可能不太好做 但是5000的话枚举断边就可以\(n^2\)了 #include<bits/st ...

  9. 插叙LTE-2

      LTE TDD与LTE FDD技术简介和比较 标签: 频分双工(FDD) 时分双工(TDD) LTE 摘要:UTRA 的长期演进(Long Term Evolution ,LTE) 技术存在LTE ...

  10. Linux用户相关文件之密码文件

    1.文件地址: /etc/shadow ----------. 1 root root 842 10月 6 13:09 /etc/shadow 2.文件内容: xiaol_1:$6$NdCAnK3y$ ...