【问题标题】:Difference Between Exceptions Handling [duplicate]异常处理之间的区别[重复]
【发布时间】:2015-12-15 21:49:54
【问题描述】:

我正在阅读 Java 中的异常处理,但在理解以下异常方法时遇到了问题。

public static Object deserialize() throws IOException,
        ClassNotFoundException {}

另一个

try {
    } catch (ClassNotFoundException | IOException e) {
            e.printStackTrace();
        }

我知道 try and catch 是如何工作的。但我不知道在我的第一个示例中throws IOException,ClassNotFoundException 是如何。

有什么区别?我应该选择哪个?

我知道这可能是个愚蠢的问题,因为我不知道如何在 Google 上搜索此问题。

【问题讨论】:

  • @Downvoter 请阅读我的最后一行。 :(
  • 第一个说最好让调用者知道发生了异常,并且应该按照他们认为合适的方式处理它。第二个说编码器使用 ide 生成了一个 try-catch 块,无法打扰/不知道如何编写更合适的东西。
  • 所以因为你知道这是一个愚蠢的问题,我们不应该否决它吗?我认为您不了解 Stack Overflow 的工作原理。出于特定原因,存在向下投票按钮。您可以通过将鼠标悬停在其上来获取它们。
  • @SotiriosDelimanolis 好的,没问题..我会接受只是为了学习..谢谢。

标签: java


【解决方案1】:

第二个示例处理方法本身的异常。 第一个示例将此责任归于您的方法的调用者。所以他们可以处理/抛出这些异常。

如果您知道发生这些异常时该怎么做,请使用第二种方法。 如果您不知道该怎么做并希望调用者对这些异常采取措施,请使用第一路。

【讨论】:

  • 你能探索一下你的关于And the first example puts this resposibility on to the the caller of your method.
  • “这个责任”是指“处理异常”。在第一个示例中,该方法声明它可以抛出这些异常。所以这个方法的调用者应该注意这一点,然后应该决定是处理这些异常还是重新抛出它们。
猜你喜欢
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-14
  • 2018-03-08
  • 2019-02-16
相关资源
最近更新 更多