【发布时间】:2021-05-09 08:40:21
【问题描述】:
在 Java 中,已检查异常和未检查异常都可以显式抛出,即通过 throw 语句。此外,像ArithmeticException 和OutOfMemoryError 这样的未经检查的异常可以在没有任何明确的throw 语句的情况下触发,如下所示:
public static void throwArithmeticException() {
int i = 1;
int j = i / 0;
}
public static void throwOutOfMemoryError() {
List<Object> list = new ArrayList<>();
while(true) {
list.add(new Object());
}
}
所以我的问题是,有什么方法可以隐式地触发检查异常,例如IOException,即不使用任何throw 语句?
【问题讨论】:
-
这纯粹是出于兴趣/乐趣,还是您有更大的目标?
-
@Sweeper 我的研究课题是异常相关的,所以对异常处理的机制很感兴趣。
-
感谢@Turing85 的建议,我已经编辑并澄清了问题。
-
您的意思是“在任何地方都没有
throw吗?例如,Thread.currentThread().interrupt(); Thread.sleep(1);会导致抛出检查异常,但在某处抛出了一些东西。
标签: java exception checked-exceptions unchecked-exception