gpt4 book ai didi

java - 为什么没有必要捕获 IllegalArgumentException?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:48:49 27 4
gpt4 key购买 nike

我想知道为什么 IllegalArgumentException 类不需要被捕获或声明,而其他异常则必须(例如 java.net.MalformedURLException).

public void foo() {
throw new IllegalArgumentException("spam");
}

public void bar() throws MalformedURLException { // required
throw new MalformedURLException("ham");
}

我知道 Error 不必声明,因为它们不打算被捕获。

我想声明一个不需要捕获的新异常。

最佳答案

Java 中有两种类型的异常:已检查异常未检查异常。必须捕获或声明抛出已检查的异常(如 MalfomedURLException),但捕获未检查的异常(如 IllegalArgumentException)不是强制性的,您可以让调用者捕获它们(或将它们扔给自己的调用者)。

有关更多信息,请查看这篇文章:

Java: Checked vs Unchecked Exceptions Explanation

如果您从 RuntimeException 或从它继承的任何异常类继承您的自定义异常类,那么捕获您的异常将不是强制性的。

关于java - 为什么没有必要捕获 IllegalArgumentException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19190280/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com