跳至主要內容
Java try-catch 捕获异常真的会影响性能吗?

8.5 try-catch会影响性能吗?

“二哥,你看着这鬼代码,竟然在 for 循环里面搞了个 try-catch,不知道try-catch有性能损耗吗?” 老王煞有其事地指着屏幕里的代码:

 for (int i = 0; i < 5000; i++) {
     try {
         dosth
     } catch (Exception e) {
         e.printStackTrace();
     }
 }

沉默王二大约 7 分钟Java核心异常处理
深入理解 Java 中的 try with resources

8.2 try-with-resources

“二哥,终于等到你讲 try-with-resources 了!”三妹夸张的表情让我有些吃惊。

“三妹,不要激动呀!开讲之前,我们还是要来回顾一下 try–catch-finally,好做个铺垫。”我说,“来看看这段代码吧。”

public class TrycatchfinallyDecoder {
    public static void main(String[] args) {
        BufferedReader br = null;
        try {
            String path = TrycatchfinallyDecoder.class.getResource("/牛逼.txt").getFile();
            String decodePath = URLDecoder.decode(path,"utf-8");
            br = new BufferedReader(new FileReader(decodePath));

            String str = null;
            while ((str =br.readLine()) != null) {
                System.out.println(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

沉默王二大约 6 分钟Java核心异常处理
Java空指针NullPointerException的传说

8.4 空指针的传说

空指针,号称天下最强刺客。

他原本不叫这个名字,空指针原本复姓异常,空指针只不过是他的武器,但他杀戮过多,渐渐地人们只记住了空指针这三个字。

天下武功,唯快不破,空指针的针,以快和诡异著称,稍有不慎,便是伤亡。

... ...

我叫王二,我来到这个奇怪的世界已经一年了,我等了一年,穿越附赠的老爷爷、戒指、系统什么的我到现在都没发现。

而且这个世界看起来也太奇怪了,这里好像叫什么 Java 大陆,我只知道这个世界的最强者叫做 Object,听说是什么道祖级的存在,我也不知道是什么意思,毕竟我现在好像还是个菜鸡,别的主角一年都应该要飞升仙界了吧,我还连个小火球都放不出来。


沉默王二大约 14 分钟Java核心异常处理
Java异常处理的20个最佳实践:提高编程效率与代码质量

8.3 异常处理的20个最佳实践

“三妹啊,今天我来给你传授 20 个异常处理的最佳实践经验,以免你以后在开发中采坑。”我面带着微笑对三妹说。

“好啊,二哥,我洗耳恭听。”三妹也微微一笑,欣然接受。

“好,那哥就不废话了。开整。”

01、尽量不要捕获 RuntimeException

阿里出品的 Java 开发手册上这样规定:


沉默王二大约 15 分钟Java核心异常处理
一文彻底搞懂Java异常处理,YYDS

8.1 Java异常处理全面解析

01、什么是异常

“二哥,今天就要学习异常了吗?”三妹问。

“是的。只有正确地处理好异常,才能保证程序的可靠性,所以异常的学习还是很有必要的。”我说。

“那到底什么是异常呢?”三妹问。

“异常是指中断程序正常执行的一个不确定的事件。当异常发生时,程序的正常执行流程就会被打断。一般情况下,程序都会有很多条语句,如果没有异常处理机制,前面的语句一旦出现了异常,后面的语句就没办法继续执行了。”

“有了异常处理机制后,程序在发生异常的时候就不会中断,我们可以对异常进行捕获,然后改变程序执行的流程。”


沉默王二大约 17 分钟Java核心异常处理