异常的分类;
1,编译时被检测异常:Exception和其子类都是,除了特殊子类RuntimeException体系
这种问题一旦出现,希望在编译时就进行检测,让这种问题有对应的处理方式。
这样的问题都可以针对性的处理。
2,编译时不检测异常(运行时异常):Exception中的RuntimeException和其子类
这种问题的发生,无法让功能继续,运算无法进行,更多是因为调用者的原因导致的
或者引发的内部状态的改变导致的
这种问题一般不处理,直接编译通过,在运行时,让调用者调用时的程序强制停止
让调用者对代码进行修正。
所以自定义异常时,要么继承Exception,要么继承RuntimeException。
RuntimeException是那些可能在JAVA虚拟机正常运行期间抛出的异常的超类
可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需在 throws 字句中进行声明
error已经让虚拟机不能正常运行了。
throws和throw的区别
1, throws使用在函数上
throw使用在函数内
2, throws抛出的是异常类,可以抛出多个,用逗号隔开
throw抛出的是异常对象