This question already has answers here:
Understanding checked vs unchecked exceptions in Java

(21个回答)



The throws keyword for exceptions in Java

(4个答案)



When to throw an exception?

(32个答案)


1年前关闭。




throws关键字仅用于检查的异常。它通过throws关键字指示调用者使用try catch块来排除所有列出的异常。

由于我们知道模块中可能会发生哪种检查异常,因此:
  • 为什么我们不使用模块内部的try catch块来处理已检查的异常?
  • 我们可以使用try-catch块处理模块内部的检查异常吗?
  • 如果(2)的答案为"is",那么为什么我们可以在模块自身内部排除相同的异常时,使用throws关键字强制调用者将这些异常排除在外?

  • 这样,我们无需在每次调用该方法时都手动手动异常(exception)。

    最佳答案

    让我以扔FileInputStream::newFileNotFoundException为例来消除您的误解。

    因此,例如,我们有一些类似以下的代码:

    FileInputStream fis = new FileInputStream("/some/path/to/file.txt");
    

    那可能会抛出一个FileNotFoundException,而你说的是,



    因为FileInputStream不知道如何处理异常!

    根据情况,有很多方法可以处理FileNotFoundException:
  • 如果文件路径来自用户输入,则可能要求用户输入另一个文件路径
  • 您可能会显示一条错误消息
  • 您可能什么也不做,只是让它崩溃

  • 视情况而定,上述所有选项都是完全明智的选择。 FileInputStream如何知道您的情况?不是!

    这就是用throws子句说的原因:

    关于java - 什么时候应该在Java中使用throws关键字? [复制],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56303339/

    10-10 06:11