20145109 《Java程序设计》第五周学习总结
教材学习内容总结
Chapter 8 Exception Handling
try, catch
All Exceptions are packed. If willing, 'try' to 'catch' instances, which are representative of exceptions, and deal with them.
try {
...
} catch (Exception ex) {
...
}
Exception Inheritance Architecture
Exception are packed as throwable. Throwable includes Error and Exception. Error and its sub class represents serious system error and no dealing. As to mistakes in program design, Exception or its sub class are recommended. It's also called Exception Handling.
Generally speaking, if some method can throw Throwable or subclass-instance, you must use 'try', 'catch' to handle it, except from Error and RuntimeException.
Multi-catch
try {
...
} catch (IOException | InterruptedException | ClassCastException e) {
e.printStackTrace();
}
catch? throws ?
If exception happens without sufficient info to deal with it when programming, we can throw exception. Thus, it is the cilent that handle it.
public class FileUtil {
public static String readFile(String name) throws FileNotFoundException {
...
}
}
Actually, when exception happens, we can handle what we can handle with 'try' 'catch', the left part we 'throw' to the client.
public class FileUtil {
public static String readFile(String name) throws FileNotFoundException {
StringBuilder text = new StringBuilder();
try {
Scanner console = new Scanner(new FileInputStream(name));
while (console.hasNext()) {
text.append(console.nextLine()).append('
');
}
} catch (FileNotFoundException ex) {
ex.printStackTrace();
throw ex;
}
return text.toString();
}
}
** Inheritance ** :
if the parent class declare some exception, the sub class overrides this method properly in these ways:
- no declaration of throwing any exception by keyword 'throws'
- throws some exceptions in the parent-class method
- throws sub exceptions in the parent-class method
But the following is forbidden:
- throws other exceptions with no declaration in the parent class
- throws parent exceptions in the parent-class method
Stack Trace
The easiest way, is printStackTrace() .
The stack trace infomation in the console will show the type of exception. The origin is on the top.
assert
In some running time or situation, a state must be or not be. It is called assertion.
finally
No matter whether exception happens in 'try', if there's 'finally' block, it will be certain to execute.
try {
...
} finally {
...
}
Try-With-Resources
try(Scanner console = new Scanner(new FileInputStream(name))) {
...
}
Interface java.lang.AutoCloseable
Chapter 9 Collection & Map
java.util.List:
record the order of every instance and get them.
java.util.Set:
no repeat of the instances.
java.util.Queue:
yes, it's queue.
教材学习中的问题和解决过程
代码调试中的问题和解决过程
其他(感悟、思考等,可选)
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 50/50 | 2/2 | 8/8 | |
第二周 | 100/150 | 2/4 | 8/16 | |
第三周 | 250/400 | 2/6 | 10/26 | 用git上传代码 |
第四周 | 300/700 | 2/8 | 12/38 | 用wc查看代码行数 |
第五周 | 100/800 | 1/9 | 10/48 |