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 ...
随机推荐
- makefile编写---单个子目录编译自动变量模板ok
1.自动化变量通配符http://blog.sina.com.cn/s/blog_7c95e5850101b38l.html 2.wildcard 使用http://blog.csdn.net/lia ...
- JS异步笔记
Promise 最早接触异步是在.net中,当时还是比较流行使用基于控件的BackgroundWorker,其自身通过子线程的方式来异步处理一些情况,并且封装了一些功能与主线程通信.后来,开始使用Th ...
- gtest入门简介
Gtest测试,入门简介: 资源:http://developer.51cto.com/art/201108/285290.htm http://www.cnblogs.com/bangerlee/a ...
- dll 在进程中怎么区分的
平时一直没想过这个问题,今天在测试输入法注入的时候才发现windows下dll在进程中是以名字区分的,即使是完全一模一样的DLL. 具体详情,容我慢禀 : 需求是这样的,只能含有一个a.DLL,这 ...
- jquery 插件 起步代码
/** * Created by W.J.Chang on 2014/6/25. */ ;(function($) { var methods= { check: function() { retur ...
- ios中的coredata
本文转载至 http://blog.csdn.net/chen505358119/article/details/9334831 分类: ios2013-07-15 18:12 12449人阅读 评论 ...
- 二、Android应用的界面编程(七)ViewAnimator及其子类[ ViewSwitcher、ImageSwitcher、TextSwitcher、ViewFlipper ]
ViewAnimator是一个基类,它继承了FrameLayout.因此它表现出FrameLayout的特征,可以将多个View组“叠”在一起. ViewAnimator可以在View切换时表现出动画 ...
- 将电脑中编写的app网页放到手机上访问
http://jingyan.baidu.com/article/3065b3b6e5becdbecff8a4d5.html 1.在控制面板-管理工具找不到IIS,则先在程序-打开或关闭window功 ...
- VS2015 如何打印出 类的内存布局?
项目->属性->C/C++->命令行 添加如下内容: /d1 reportAllClassLayout [XXX] XXX 可选,代表源文件名,例如 main.cpp 或 /d1 r ...
- Linux下源码安装redis,编译安装
1.下载redis源码 [root@localhost opt]# wget http://download.redis.io/releases/redis-4.0.10.tar.gz 2.解压缩 [ ...