为什么Java语言设计者使用术语"RuntimeException"?这个坏术语不是吗?我的意思是在运行时会发生任何异常,无论是检查异常(例如IOException)还是未经检查的异常.
如果他们创建CheckedException和UncheckedException都延长了Throwable,那会不会更好?
已检查的异常(即异常及其子类)与未经检查的异常(即Error,RuntimeException及其子类)之间的区别不是它们可以发生的位置,而是处理它们的位置.调用异常是因为它们必须在编译时处理 - 在某些时候*没有捕获已检查的异常是编译时错误.
RuntimeExceptions是那些根本没有必须在编译时处理(更确切地说,在运行时处理,由Java虚拟机的人或).至于为什么它们不被称为UncheckedExceptions,可能是因为Error和RuntimeException之间存在足够的区别,或者可能只是因为RuntimeException是他们选择调用它的原因.
*从技术上讲,你可以让你的方法抛出异常直到并包括main(String[]),但这只是意味着调用的JVM部分main将捕获它.
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |