java异常

java中的异常分类及区别

异常类 描述
NullPointerException 空指针异常
ArrayIndexOutOfBoundsException 数组越界访问异常
IOException 输入\输出异常
NumberFormatException 错误的类型转换异常
ArrayStoreException 当向数组存入错误类型数据时
ClassNotFoundException 试图访问一个根本不存在的类
ArithmeticException 除数为0的算术异常

Error

Error属于程序无法处理的错误,是JVM需要负担的责任,无法通过try-catch来进行捕获。例如,系统崩溃,内存不足,堆栈溢出等,编译器不会对这类错误进行检测,一旦这类错误发生,通常应用程序会被终止,仅靠应用程序本身无法恢复。

比如StackOverFlowErrorVirtualMachineErrorOutofMemoryErrorThreadDeath

Exception

程序本身可以处理的异常,可以通过catch来进行捕获,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。

Exception又可以分为运行时异常(RuntimeException,又叫非受检查异常unchecked Exception)和非运行时异常(又叫受检查异常checked Exception)。

checked Exception

就是在写代码的时候,需要写try catch的Exception,这种Exception一般不会影响主体程序,可以由程序员手动诊断修复异常。比如IOExceptionSQLExceptionClassNotFoundException

unchecked Exception

又称RunTimeException,这一类就是在代码处理了checked Exception之后,运行时候仍然会遇到的Exception。

比如NullPointerExceptionClassCastExceptionArithmeticExceptionIllegalArgumentExceptionIndexOutOfBoundsException(包括ArrayIndexOutofBoundsExcpetionStringIndexOutofBoundsExcpetion)、NumberFormatException