在Java中,有一些异常需要throws语句:
public void myMethod() throws IOException {
throw new IOException("Error!");
}
而其他人则没有:
public void myOtherMethod() {
throw new IllegalArgumentException("Error!");
}
public void myThirdMethod() {
throw new Error("Error!");
}
第一种方法不会编译throws
语句。
确定Exception
/ Error
是否需要throws
声明的标准是什么?
答案 0 :(得分:2)
编译器的异常检查和抱怨在java中被称为 Checked Exceptions 。
在编译时,java编译器检查程序是否包含 检查异常的处理程序。 Java编译器分析由哪些 检查异常可能是由于执行方法或 构造函数。对于每个已检查的异常,这是一个可能的结果, throws子句的方法或构造函数必须提到类或 它的异常超类。
从JLS阅读更多内容:http://docs.oracle.com/javase/specs/jls/se5.0/html/exceptions.html
IOException是一个已检查的异常,因此java编译器会要求您捕获它或抛出它。 IllegalArgumentException是一个运行时异常,并且未被编译器检查或抱怨。
答案 1 :(得分:1)
从RuntimeException
派生的异常不需要声明,其他的则是。