20172333 2017-2018-2 《Java程序设计》第9周学习总结

时间:2022-09-20 19:17:34

20172333 2017-2018-2 《Java程序设计》第9周学习总结

教材学习内容

第十一章

  1. 异常与错误均是对象
  2. 异常是由代码的特定方法或者操作出错。
  3. 错误是代码运行中虚拟机出现错误。
  4. 非捕获的异常会终止运行程序。
  5. try语句可以对应多个Catch语句,反之则Catch只能对应一个Try语句。
  6. try语句可以没有catch语句,但任然可以拥有finally语句。
  7. 并不是每种情况下都应该捕获异常,有时因为异常而结束程序才是正确的方法。
  8. 所有新的异常都是由Exception类派生的。
  9. Java中唯一一个无法检测的异常时RuntimeException类及其后代类对象。

第十二章

  1. 递归是一个方法内自己调用自己方法。
  2. 递归方法一定有一条If-else语句。
  3. 迭代有些时候是可以达到和递归一样的效果,如何使用应该判断。
  4. 递归中的间接递归值得是一个方法A中运用的另外一方法B,而B中的方法含有方法A。

代码调试中的问题和解决过程

  • [x] 问题1:对于PP11.2的编写过程中,将Try-catch语句放在While语句下虽然成功将异常捕获,但是while语句却无法循环了。图20172333 2017-2018-2 《Java程序设计》第9周学习总结

  • 解决过程:后面审题发现不用使用While循环,只是到Done之后就可以退出了


教材学习中的问题和解决过程

  • [x] 问题1:异常与错误如何进行判断区分?20172333 2017-2018-2 《Java程序设计》第9周学习总结

  • 解决过程:刚开始时我以为是可以捕获的是异常,不可捕获的是错误,后来一想不对啊,我要的是先判断是不是异常才进行捕获啊。于是我百度了一下发现其实错误是由于虚拟机出现错误才会出现,一般来说异常就是方法内部出错等一系列程序员编写错误。
  • [x]问题2:使用while中内部加入try-catch却导致while语句不在循环的问题。
    解决过程:对于该问题其实在代码调试中已经提过,为什么要在这里再提呢,因为我发现这个东西与书上try-catch中解释有矛盾,书中提到

    如果在try语句块执行的任何位置抛出了异常,并存在catch语句,则控制立刻转移到相应的catch子句处理异常。执行完之后,会控制转移到整个try-catch语句之后的语句继续执行。

按照书上的说法,while语句应该继续才对,遇事不决问百度,发现有许多人与我有着相同的情况,我找到一个最有参考价值的回答大概就是一旦捕获异常就会终结循环。

代码托管

(statistics.sh脚本的运行结果截图)20172333 2017-2018-2 《Java程序设计》第9周学习总结


上周考试错题总结

1.A processing stream is a data stream that

A . can manage both input streams and output streams at the same time

B . performs some manipulation or process on the data

C . can only manage input streams

D . operates on input and output devices but not files

E . can manage byte streams and character streams at the same time

答案:B,我选择E。

解析:处理流相当于是将一些额外的添加到输入或输出中,就是对数据进行一些处理。

2.System.err is a(n)

A . input stream

B . GUI dialog box that indicates when an error has arisen

C . object

D . Error subclass

E . RuntimeException subclass

答案:C,我选择了A。

解析:错误也是一种输出流,都是对象。

3.PrintWriter is a better output stream class that PrintStream because PrintWriter

A . has both print and println methods and PrintStream only has print

B . can output both byte and character streams and PrintStream can only output byte streams

C . has error checking mechanisms as part of the class and PrintStream does not

D . will not throw checked exceptions and PrintStream will

E . all of the above

答案:C,我选择了A

解析:PrintStream是流类所以没有错误检查机制。

4.The difference between a checked and an unchecked exception is

A . checked exceptions need not be listed in a throws clause

B . unchecked exceptions must be listed in a throws clause

C . neither kind of exception follows the rules of exception propagation

D . an unchecked exception requires no throws clause

E . a checked exception always must be caught by a try block; an unchecked exception does not

答案:D我选择了B。

解析:一个检查的异常必须被捕获,否则它必须在抛出条款中列出。不受约束的异常不需要抛出条款。这两种例外都遵循异常传播的规则。

点评:

  • 博客中值得学习的或问题:
    李楠同学对于课本学习内容十分充实。
    在迭代与递归的差别之间使用实际的代码进行对比,鲜明且有效,值得我学习。

  • 代码中值得学习的或问题:
    在进行Git commit时的备注内容有条理且井然有序。

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172330李楠
    • 结对照片
    • 结对学习内容
      • Commit内容丰富值得学习
      • 问题及处理方法记录简洁明了。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 125/125 2/2 20/20
第二周 269/394 2/4 未知/38
第三周 477/920 1/5 X/X
第四周 1179/2338 1/6 --
第五周 1131/3154 1/7 ?/?
第六周 1448/4008 1/8 ?/??
第七周 957/4840 2/10 ?/???
第八周 1093/5933 2/10 ?/????
第九周 739/6672 2/10

其他(感悟、思考等,可选)

有些时候,无论你怎么努力,你也编不出那种代码,明明所有代码都是正确的,从条理上明明可以输出正确的结果,但是它一定要给你乱码,从自习室开门到最后关门,你改了无数遍的代码,最后答案总是错误。到了最后的Deadline,询问别人这个到底错在了哪里,别人帮你看了代码之后不轻不重的说一句,样子好像没错,结果错了就全部删掉重新编吧。呵呵


参考资料

错误和异常,两者的区别介绍

java try-catch以及循环的问题