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. Branching / Tagging

    Branching / Tagging One of the features of version control systems is the ability to isolate changes ...

  2. Ionic 取消自带动画效果

    $ionicConfigProvider.views.transition('none'); 或: <ion-view view-title="个人中心" animation ...

  3. SQL2008删除大量数据

    常见问题:工作中数据库难免产生大量的日志,而用户可能关心的只有最近一个月左右的,这些日志占用了服务器磁盘,还可能影响了服务运行效率.甚至在数据库迁移时更因为体积而带来巨大麻烦. 那么,在需要时,删除不 ...

  4. Python+selenium打开或关闭浏览器

    Python+selenium打开或关闭浏览器 一.打开或关闭火狐浏览器 1.       初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打 ...

  5. 持续集成 解决 Jenkins 中无法展示 HTML 样式的问题

    对于测试报告来说,除了内容的简洁精炼,样式的美观也很重要.常用的做法是,采用HTML格式的文档,并搭配CSS和JS,实现自定义的样式和动画效果(例如展开.折叠等). 在Jenkins中要展示HTML文 ...

  6. hdu5125(LIS)

    相当于用多个O(nlog(n))LIS来做. // // main.cpp // 160322 // // Created by 陈加寿 on 16/3/22. // Copyright © 2016 ...

  7. 【BZOJ1941】[Sdoi2010]Hide and Seek KDtree

    [BZOJ1941][Sdoi2010]Hide and Seek Description 小猪iPig在PKU刚上完了无聊的猪性代数课,天资聪慧的iPig被这门对他来说无比简单的课弄得非常寂寞,为了 ...

  8. Xamarin.Forms学习之初

    微软的Build 2016结束的有段时间了,对于一个简单的小屌丝程序员--我来说,关注最大的无疑是Xamarin的免费(开源什么的让大神们上吧),内心激动啊.大会结束的周末我就迫不及待的安装了,然后. ...

  9. hadoop报错java.io.IOException: Bad connect ack with firstBadLink as 192.168.1.218:50010

    [root@linuxmain hadoop]# bin/hadoop jar hdfs3.jar com.dragon.test.CopyToHDFS Java HotSpot(TM) Client ...

  10. Introduction to Mathematical Thinking - Week 2

    基本数学概念 real number(实数):是有理数和无理数的总称 有理数:可以表达为两个整数比的数(a/b, b!=0) 无理数是指除有理数以外的实数 imply -- 推导出 不需要 A 能推导 ...