我了解已检查的异常继承自Exception
,未经检查的异常会延伸RuntimeException
。但是看一下source code,我无法看到RuntimeException中的内容是什么导致它被取消选中。
实际上,如果我创建自己的类MyRuntimeException
并从RuntimeException
复制粘贴代码(在删除包声明并更改类名称之后),结果类将是检查。也就是说,当我尝试抛出MyRuntimeException时,编译器会抱怨异常需要被捕获或声明被抛出。但是,抛出RuntimeException
编译没有错误。
内置的RuntimeException中有什么神奇的小精灵粉尘可以让它取消选中?
编辑:作为最终用户程序员,我是否可以构建自己的异常层次结构并复制已检查和未检查的异常行为?
答案 0 :(得分:3)
小精灵尘埃不在RuntimeException
级。在编译器中,RuntimeException
及其派生类与其他异常不同。