20172321 2017-2018-2 《程序设计与数据结构》第九次学习总结
其他
2018-05-13 21:07:11
阅读次数: 0
20172321 2017-2018-2 《程序设计与数据结构》第九次学习总结
教材学习内容总结
异常
- 异常处理
- 根本不处理异常
- 当异常发生时处理异常
- 在程序的某个位置集中处理异常
- 未捕获的异常
- try-catch语句和finally语句
- 没有异常,将继续执行try语句后的语句块,所有catch子句后的语句
- 有异常,则控制立刻转移到相应的catch子句处理异常
- 每个catch子句处理一种try语句块中抛出的异常
- 无论try语句块正常退出或由于抛出异常而退出,都将执行finally子句
- 如果有finally子句,则必须跟在所有的catch子句后面
- 异常的传递
- 如果一个异常的发生处没有捕获和处理该异常,则该异常将传递给上级调用方法
- 异常类层次结构
- 自定义异常:可由Exception类或它的后代类派生一个新类来定义一个异常
- 可检测异常必须由方法捕获,或者必须在可能抛出或传递异常方法的throws子句中列出来
- Java中唯一的不可检测异常是RuntimeExceptions类的对象或该类的后代类对象
- 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改写里,不知道该把判断是否为回文的语句放在哪里
上周考试错题总结
- 错题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
感觉是没毛病的,应该是对的呀,自己想不出原因,看解析:定义几乎是正确的,但它必须定义一个类,而不是一个例外。异常是一个类,异常应该扩展异常。类定义的标头应该是公共类的辅助扩展异常。
结对及互评
点评模板:
点评过的同学博客和代码
学习进度条
目标 |
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 |
|
参考资料
转载自www.cnblogs.com/N-idhogg/p/9033230.html