blog

首页

Java 核心技术36讲

极客时间

Java/JVM生态

Java语言特性

Java常用类库

Java虚拟机

工具

Exception 和 Error

Exception&Error

1. Exception 是程序正常运行中可以预料的意外情况可能并且应该被捕获进行处理
2. Error 是正常情况下不会出现的情况绝大部分Error都会导致程序处理非正常的不可恢复的状态既然是非正常情况下所以不便于也不需要捕获

处理原则

  1. 尽量不要捕获类似Exception 这样的通用异常,而是应该捕获特定异常。
  2. 不要生吞(swallow)异常。
  3. 异常打印要制定确定的log收集器。
  4. Throw early
  5. catch late
  6. 追求性能时,谨慎使用try-catch。

final、 finally、 finalize的不同

final修饰class代表不可以继承扩展,final修饰变量代表不可以修改,final修饰方法代表不可以重写。

finally是java保证重点代码一定被执行的机制,如try-finally, try-catch-finally关闭JDBC连接。 java 7 以上更加推荐使用try-with-resource 语句。

static String readFirstLineFromFile(String path) throws IOException {
    try (BufferedReader br = new BufferedReader(new FileReader(path))) {
        return br.readLine();
    }
}
immutable的类实现
- 将class自身声明为final。
- 将所有成员变量声明为private和final,并且不实现setter方法。
- 通常在构建对象时,成员变量使用深度拷贝。
- 如果要实现getter,或者反应内部状态的方法,使用copy-on-write原则,创建私有的copy。