那是因为这是一个 未经检查的
异常。不需要显式声明或捕获它。另请参阅有关该主题的Sun教程。
更新:
通常,您只应抛出一个
RuntimeException(最好是javadoc中列出的其子类之一)以表明调用者做错了。即传递一个
null参数(然后throw
NullPointerException),或者一个非法参数(然后throw
IllegalArgumentException),或者在错误的时刻/状态(然后throw
IllegalStateException)调用该方法,等等。调用者应该修复其代码以避免这种情况。例如,预先检查参数是否为null,或者参数格式/语法是否正确,或确保在正确的时间调用该方法。
如果有应该抛出一个运行时异常而无法使用其指定的子类具体的情况,那么你应该把它扩大,并在新的异常的Javadoc正确记录,并在调用的方法,如
ConfigurationExceptionextends RuntimeException为案件在使用之前,调用代码未正确配置应用程序/
API。这应该向最终用户(另一个开发人员)发出足够的信号,以采取相应的措施。
简而言之:
RuntimeExceptions应确定由代码流或配置错误引起的可程序恢复的问题(请参阅:开发人员的错误)。已检查
Exceptions应确定由程序无法控制的意外情况(例如数据库关闭,文件I
/
O错误,最终用户输入错误等)引起的可程序恢复的问题。
Errors应该识别程序上无法恢复的问题(例如,内存不足,初始化程序内部的异常等)。



