Java提供了两种错误的异常类,分别为Error和Exception,他们拥有共同的父类—Throwable。
Error表示程序在运行期间出了非常严重的错误,并且错误不可恢复,如OutOfMemoryError、ThreadDeath等
Exception表示可以恢复的异常,是编译器可以捕捉到的。包含两种类型:
检查异常和运行时异常。
1)检查异常。Java编译器强制程序去捕获此类异常,如IO异常和SQL异常。
2)运行时异常。编译器不会对其强制进行捕获并处理。如果不进行处理,出现异常时,JVM会来处理。
出现运行时异常,系统会把异常一直往上抛,知道遇到处理代码为止。若没有处理代码,则抛到最上层。
多线程又Thread.run()方法抛出,单线程用main()方法抛出。如果不处理异常,一旦发生,要么线程终止,要么主程序终止。
运行时异常包括:NullPointException(空指针异常)
ClassCastException(类型转换异常)
ArrayIndexOutOfBoundsException(数组越界异常)
ArrayStoreException(数组存储异常)
BufferOverflowException(缓冲区溢出异常)
ArithmeticException(算输异常)