第2讲 | Exception和Error有什么区别?

2019-04-16  本文已影响0人  governlee

对比 Exception 和 Error,另外,运行时异常与一般异常有什么区别?

理解 Throwable、Exception、Error 的设计和分类

image.png

理解 Java 语言中操作 Throwable 的元素和实践

使用try-with-resources 和 multiple catch,在编译时期,会自动生成相应的处理逻辑。try-with-resources自动按照约定俗成 close 那些扩展了 AutoCloseable或者Closeable的对象。

try (BufferedReader br = new BufferedReader(…);
     BufferedWriter writer = new BufferedWriter(…)) {// Try-with-resources
// do something
catch ( IOException | XEception e) {// Multiple catch
   // Handle it
} 

最佳实践

public void readPreferences(String filename) {
    Objects. requireNonNull(filename);
    //...perform other operations... 
    InputStream in = new FileInputStream(filename);
     //...read the preferences file...
}

catch late,异常不知道如何处理时,可以选择保留原有异常的 cause 信息,直接再抛出或者构建新的异常抛出。在更高层面,因为有了清晰的(业务)逻辑,往往会更清楚合适的处理方式是什么。

性能角度看异常处理机制

上一篇 下一篇

猜你喜欢

热点阅读