下面哪种异常处理方式好

在做异常处理的时候,下面哪种方式处理好一点,想问一下大家的看法

try {
      //业务逻辑...
} catch (ExceptionType1 e) {
      //.... 处理
} catch (ExceptionType2 e) {
      //.... 处理
}
try {
      //业务逻辑...
} catch (Exception e) {
   if (e instanceof ExceptionType1 ){
           //.... 处理
   }
   if (e instanceof ExceptionType2 ){
           //.... 处理
   }
}

从代码效率、可读性上分别考虑

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/248762
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:服务器下载上传 选择路径问题(将已经上传的音视频图片附件下载至同一文件夹并压缩)
  • 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 背包问题代码实现小节, 巩固相关知识点
  • 除此之外, 这篇博客: 什么是面向对象程序设计方法中的 六、单根结构、上溯造型与下溯造型 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:

    问题标题: 下面哪种异常处理方式好?

    问题标签: java

    问题内容: 在编写代码时,遇到了异常处理的问题。我想请问大家,以下两种异常处理方式中,哪种更好一些呢?我希望能兼顾代码效率和可读性。

    代码方式1:

    try {
      // 业务逻辑...
    } catch (ExceptionType1 e) {
      //.... 处理
    } catch (ExceptionType2 e) {
      //.... 处理
    }
    

    代码方式2:

    try {
      // 业务逻辑...
    } catch (Exception e) {
      if (e instanceof ExceptionType1) {
        //.... 处理
      }
      if (e instanceof ExceptionType2) {
        //.... 处理
      }
    }
    

    我希望能够了解两种方式在代码效率和可读性方面的优劣。谢谢!

    回答:

    对于代码效率和可读性,我个人建议使用代码方式1。以下是原因:

    1. 代码效率:在代码方式1中,每个异常类型都有自己的catch块,因此当出现相应的异常时,程序可以直接跳到对应的catch块处理异常。这种方式使得代码的执行效率更高,不需要遍历多个if语句来判断异常类型。
    2. 可读性:代码方式1更加清晰和易读。不同的异常类型有自己的处理代码块,使得代码结构更加明确。这可以帮助其他开发人员理解和维护代码。在代码方式2中,需要使用多个if语句来判断异常类型,并且需要在每个if语句内部进行处理。这样的代码结构可能会使得阅读代码和理解代码的意图更加困难。

    综上所述,我会推荐使用代码方式1作为更好的异常处理方式,因为它能够提供更高的代码效率和更好的可读性。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

当然是前者,从字数上也能看出来