• 20172321 2017-2018-2 《程序设计与数据结构》第九次学习总结


    20172321 2017-2018-2 《程序设计与数据结构》第九次学习总结

    教材学习内容总结

    异常

    • 异常处理
      • 根本不处理异常
      • 当异常发生时处理异常
      • 在程序的某个位置集中处理异常
    • 未捕获的异常
      • 异常抛出时所输出的信息,提供了方法调用堆栈踪迹。
    • try-catch语句和finally语句
      • 没有异常,将继续执行try语句后的语句块,所有catch子句后的语句
      • 有异常,则控制立刻转移到相应的catch子句处理异常
      • 每个catch子句处理一种try语句块中抛出的异常
      • 无论try语句块正常退出或由于抛出异常而退出,都将执行finally子句
      • 如果有finally子句,则必须跟在所有的catch子句后面
    • 异常的传递
      • 如果一个异常的发生处没有捕获和处理该异常,则该异常将传递给上级调用方法
    • 异常类层次结构
      • 自定义异常:可由Exception类或它的后代类派生一个新类来定义一个异常
      • 可检测异常必须由方法捕获,或者必须在可能抛出或传递异常方法的throws子句中列出来
      • Java中唯一的不可检测异常是RuntimeExceptions类的对象或该类的后代类对象
    • I/O异常
      • 一个数据存储可以作为一个程序的输入流或输出流,但一般不能同时是
    标准I/O流 说明
    System.in 标准输入流
    System.out 标准输出流
    System.err 标准错误流(输出错误信息)

    递归

    • 递归
      • 递归是一种方法能够调用自己的编程技术
      • 任何一个递归定义中必须有称为基本情况的非递归定义部分
    • 递归编程
      • 每一次对方法的递归调用,都会创建新的局部变量和参数
      • 方法调用自己的递归为直接递归
      • 一个方法调用其它方法,导致再次调用自己为间接递归
    • 递归的应用
      • 迷宫旅行
      • 汉诺塔问题

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

    • 问题1:可检测异常和不可检测异常的区别
    • 问题1解决方案:可
      • 检查的异常(checked exceptions),其必须被 try{}catch语句块所捕获,或者在方法签名里通过throws子句声明.可检查的异常必须在编译时被捕捉处理,命名为 Checked Exception 是因为Java编译器要进行检查,Java虚拟机也要进行检查,以确保这个规则得到遵守.
      • 运行时异常(runtime exceptions),需要程序员自己分析代码决定是否捕获和处理,比如 空指针,被0除...
    • 问题2:异常和错误的区别
    • 问题2解决方案:
      • Throwable类有两个子类,Error与 Exception。
        错误与异常都是在程序编译和运行时出现的错误。不同的是,异常可以被开发人员捕捉和处理;而错误一般是系统错误,一般不需要开发人员处理(也无法处理),比如内存溢出。
      • Exception是java中所有异常的基类。在java中异常被分为两大类,编译时异常和运行时异常。
      • Error是java中所有错误的基类。错误通常是我们无法处理的,绝大多数情况下,我们不应该试图捕获错误。

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

    • 问题1:pp11.2里不知道在哪里使用try-catch语句

    • 问题1解决方案:之后请教了同学,自己大概是知道了
    • 问题2:在pp12.1改写里,不知道该把判断是否为回文的语句放在哪里

    • 问题2解决方案:最后还是决定新声明一个方法来判断

    代码托管

    上周考试错题总结

    • 错题1及原因,理解情况
      Assume infile is a BufferedReader for a textfile and that the textfile is empty. What is returned from the message infile.readLine( ); ?
      A . 0
      B . null
      C . a special character known as the End-of-file marker (EOF)
      D . none of the above, the message causes a NullPointerException to be thrown
      E . none of the above, the message causes a EndOfFileException to be thrown
      正确答案: B 你的答案: E
      我本来是依稀记得书上哪里好像看到一眼null,但是之后找不到了最后选了E,还是看书不仔细。readLine()方法返回与文件中下一个文本项相等的字符串。如果文件为空,则返回为null。
    • 错题2及原因,理解情况
      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 你的答案: B
      这个我确实当时不知道,稍微想了一下,所以错了。打印器类是一个编写器类,而打印流类是一个流类。主要的区别是打印器是专为文件设计的,因此错误检查机制不是打印流的一部分。
    • 错题3及原因,理解情况
      The following defines a new Exception called AnewException.
      public Exception ANewException
      {
      public ANewException(String message)
      {
      super(message);
      }
      }
      A . true
      B . false
      正确答案: B 你的答案: A
      感觉是没毛病的,应该是对的呀,自己想不出原因,看解析:定义几乎是正确的,但它必须定义一个类,而不是一个例外。异常是一个类,异常应该扩展异常。类定义的标头应该是公共类的辅助扩展异常。

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • 对教材的学习很认真,在网上也查找了很多资料和图片,很有助于学习理解。
      • 学习态度认真,博客美观,可以看出是一个优秀的同学。
      • ...
    • 代码中值得学习的或问题:
      • 写得好啊,对项目的解决很到位,很注意细节,是用了很大心思写出来的优秀的代码。
      • 代码数量很多,比我多的多,可以看出很喜欢学习java,经常在敲代码。

    点评过的同学博客和代码

    • 本周结对学习情况
      • 20172324
      • 结对学习内容
        • 四则运算的解决方案。。。。好像就这个了唉,其他的都是无关紧要的小问题,就解决难度而言根本不配和四则运算放在一起,所以就这一个了。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 189/189 1/1 18/18
    第二周 250/439 1/2 21/39
    第三周 437/876 2/4 25/64
    第四周 459/1335 2/6 21/85
    第五周 547/1882 1/7 20/115
    第六周 592/2474 2/9 25/150
    第七周 782/3256 1/10 29/179
    第八周 830/4086 3/13 40/219
    第九周 1300/5386 2/15 40/259

    参考资料

  • 相关阅读:
    工作中遇到的令人头疼的bug
    Cookie的简单用法
    C#之#if #endif的简单用法
    我们一起学习WCF 第十篇Wcf中实现事务
    一次性搞定Session
    设计模式-观察者模式
    类的扩展之 DataReader的扩展
    C#之Ref,Out以及TryParse()的用法
    C#之Lambda不得不说的用法
    C#之Action和Func的用法
  • 原文地址:https://www.cnblogs.com/N-idhogg/p/9033230.html
Copyright © 2020-2023  润新知