Java的异常分为两种,一种是Checked异常,一种是Runtime异常。
当代码出现异常时,系统自动生成一个异常对象,该异常对象被提交给Java运行时环境,Java运行时环境受到该异常对象时,会寻找能处理该异常对象的catch块(捕获),如果找到合适的catch块并把该异常对象交给该catch块处理;如果找不到捕获异常的catch块,则运行时环境终止,Java程序也将退出。
当程序需要自行抛出异常时,使用Runtime更加简洁,不用再throw某个异常时,还要捕获或者throws(尤其父类对子类有限制时)
但是使用Checked异常的话,就可以强制告诉用户需要捕获某个异常