RuntimeException
RuntimeException是Exception接口下的一个子接口,通常我们在自定义异常时,可以有实现Exception或是实现RuntimeException两种选择。
两者之间的区别在于,实现RuntimeException的异常,可以不向上声明,可以不捕获。而实现Exception接口的异常,则必须向上声明或捕获。
什么时候使用RuntimeException
当我们自定义的异常,是可以人为避免的,例如空指针异常,我们可以在有可能报此异常的地方进行判断,再执行后续代码,以避免该异常。
再来看实现Exception的异常,它必须要求使用时要强制捕获进行处理,否则无法编译通过,典型的例子为IOException,它要求你捕获,即使你的代码写得有多么好,它都没办法通过你写的代码避免这个错误发生的可能,所以必须要求捕获。