这是一个验证。
在诸如此类的 Oracle/Java 教程页面上,我一直在catch旁边看到“指定” ,就好像它是另一个具有异常处理功能的语句一样。
据我所知,“捕获或指定”中的“指定”是指在方法声明中抛出已检查异常的强制性规范, 除非它被捕获和处理。(也可以很好地指定未检查的方法,但不是强制性的案子。)
但是,这在任何这些页面中都没有固定下来,并且“指定”的格式就像它是关键字一样,尽管它不是。
我在这里错过了什么吗?
据我所知,你什么都没有。specify
表示方法声明。也许他们使用代码标记来清楚地区分两者是等效的代码方法?也可能是一个简单的错误。
为什么设计者决定强制一个方法指定可以在其范围内抛出的所有未捕获的检查异常?方法可以抛出的任何异常都是该方法的公共编程接口的一部分。
他们只是指catch 或指定要求。当他们将“指定”放在等宽字体中时,他们似乎犯了格式错误。
如果方法选择不捕获异常,则该方法必须指定它可以抛出该异常。为什么 Java 设计者会提出这个要求?因为方法可以抛出的任何异常实际上都是方法的公共编程接口的一部分:方法的调用者必须知道方法可以抛出的异常,以便智能地、有意识地决定如何处理这些异常。因此,在方法签名中,您指定该方法可以抛出的异常。
如此处所示:http: //journals.ecs.soton.ac.uk/java/tutorial/java/exceptions/catchOrDeclare.html
而且“指定”不是关键字(http://en.wikipedia.org/wiki/List_of_Java_keywords),他们只是在谈论指定方法将在方法声明中抛出的异常