【问题标题】:Why throwing a general Exception in method is bad? [duplicate]为什么在方法中抛出一般异常是不好的? [复制]
【发布时间】:2016-09-14 22:27:23
【问题描述】:

为什么通过方法抛出一般异常在 Java 中是一种不好的做法?

    class Test{
        public void ex() throws Exception{
            //...some code throwing for eg. IllegalAccesException()
        }     
    }

【问题讨论】:

  • 为什么在 Java 中返回 Object 是一种不好的做法?同样的原因。但更是如此。是代码中的实际问题,还是来自 JVM 或操作系统?
  • 因为它不具体。您可能会在方法中抛出多种类型的异常,并用Exception 将它们全部包装起来会使您的代码不那么明确。
  • 如果您有新问题,请创建一个新帖子。操纵现有问题以提出新问题是不允许的。
  • 你没有理解我的问题,并将其标记为重复,所以我只更改了代码以更好地解释我的问题,现在你建议这是一个新问题......我仍然,不知道答案。 GJ

标签: java exception-handling


【解决方案1】:

当你通过方法抛出异常时,你通常应该知道它是什么类型的异常。如果您抛出一般异常而不是特定异常,则在捕获异常时会丢失异常的特定细节(如果引发)。

例如,Float.parseFloat() 抛出:

1) NullPointerException --> 如果字符串为空

2) NumberFormatException --> 如果字符串不包含可解析的浮点数。

如果要抛出一般的“Exception”而不是“NullPointerException”和“NumberFormatException”,则无法知道是否引发了异常,因为字符串为空或字符串包含不可解析的浮点值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    • 2016-05-10
    • 2021-07-08
    • 1970-01-01
    • 2017-11-25
    相关资源
    最近更新 更多