- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想知道为什么 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/
我正在使用 this solution在二进制矩阵中找到与图像边界对齐的矩形。假设现在我想找到一个不与图像边框对齐的矩形,并且我不知道它的方向;找到它的最快方法是什么? 为了示例,让我们寻找一个仅包含
else: 行在这个 Python 程序中是否正确/必要? from random import randrange for n in range(10): r = randrange(0,1
在 TDPL 7.1.5.1 中讨论了将 Widget w2 分配给 w1 并且作者指出“将 w2 逐个字段分配给 w1 会将 w2.array 分配给 w1.array——一个简单的数组边界分配,而
我是一名优秀的程序员,十分优秀!