什么是异常
一句话表达我的理解:程序的本质就是在执行运算,如果程序执行某个运算,运算的过程中产生了错误无法继续往下进行,这个时候需要将这个运算中断,并且告诉执行程序的人哪里错了,为什么错了,这个错误的记录就是异常
异常的分类
简单来说,异常就是继承了Throwable 类的对象,异常通常分为两类,Exception,和Error
- Excepiton:程序正常运行中,可以以被程序自己处理的意外情况
- Error:程序正常运行中,一旦发生,会导致JVM 不可处理,或者不可恢复的情况 ,也就是程序自己无法处理的情况
Exception和Error 之间最主要的区别:发生以后,JVM还是否能正常运行下去
例子1:NullPointerException,我们最常见的空指针异常,发生以后直接的后果就是程序运行失败,但是这个错误不影响JVM,线程记录异常以后,下次依旧可以正常执行运算
例子2:OutOfMemoryError,一旦发生,表示JVM的内存空间不够,会影响到系统的性能,严重甚至导致宕机