fygod123 2023-07-27 10:50 采纳率: 100%
浏览 4
已结题

下面哪种异常处理方式好

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

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

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

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-07-27 13:01
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: 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作为更好的异常处理方式,因为它能够提供更高的代码效率和更好的可读性。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀