运行时异常与非运行时异常的区别?
Exception可以分为checked exceptions和unchecked exceptions :
1.unchecked exceptions(运行时异常)都是RuntimeException类及其子类异常,就是我们在开发中测试功能时程序终止,控制台出现的异常,比如:
NullPointerException(空指针异常)、
IndexOutOfBoundsException(下标越界异常)、
ClassCastException(类转换异常)、
ArrayStoreException(数据存储异常,操作数组时类型不一致)、
IO操作的BufferOverflowException异常;
2.checked exceptions非运行时异常(编译异常):是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
通俗的话说就是在写代码时出现红线,需要try...catch或者throws时出现的异常。