java - 抛出异常

标签 java exception throw

为什么你不能通过以下方式抛出 InterruptedException:

try {
    System.in.wait(5) //Just an example
} catch (InterruptedException exception) {
    exception.printStackTrace();
 //On this next line I am confused as to why it will not let me throw the exception
    throw exception;
}

我去了http://java24hours.com ,但它没有告诉我为什么我不能抛出 InterruptedException。
如果有人知道原因,告诉我!我很绝望! :S

最佳答案

只有当您编写的方法声明它抛出InterruptedException(或基类)时,您才能抛出它。

例如:

public void valid() throws InterruptedException {
  try {
    System.in.wait(5) //Just an example
  } catch (InterruptedException exception) {
    exception.printStackTrace();
    throw exception;
  }
}

// Note the lack of a "throws" clause.
public void invalid() {
  try {
    System.in.wait(5) //Just an example
  } catch (InterruptedException exception) {
    exception.printStackTrace();
    throw exception;
  }
}

您应该阅读已检查的异常以了解更多详细信息。

(话虽如此,在 System.in 上调用 wait() 几乎肯定不会按照您的预期进行...)

关于java - 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2931176/

相关文章:

c# - 您对异常消息使用什么样式?

java - 如何捕获两个文件的 FileNotFoundException?

java - 在 Java 中克隆不可变对象(immutable对象)可以获得的好处

java - 命令行参数是否有任何命名约定?

java - 具有缓存实现的 war 文件在 grails 2.4.4 上工作正常但在 tomcat 7 上失败

javascript - jquery - 当服务器返回 500 时,XMLHttpRequest 对象中的响应文本为空

java - Mockito 测试 RestClient aSync

java - 当我捕获异常并记录它时,日志仅显示异常名称,而不是异常堆栈

c++ - 是什么导致我在 Qt 中的第一次机会(堆栈溢出)异常?

java - 不返回 java 函数注解