java异常
java中的异常分类及区别
| 异常类 | 描述 |
|---|---|
| NullPointerException | 空指针异常 |
| ArrayIndexOutOfBoundsException | 数组越界访问异常 |
| IOException | 输入\输出异常 |
| NumberFormatException | 错误的类型转换异常 |
| ArrayStoreException | 当向数组存入错误类型数据时 |
| ClassNotFoundException | 试图访问一个根本不存在的类 |
| ArithmeticException | 除数为0的算术异常 |
Error
Error属于程序无法处理的错误,是JVM需要负担的责任,无法通过try-catch来进行捕获。例如,系统崩溃,内存不足,堆栈溢出等,编译器不会对这类错误进行检测,一旦这类错误发生,通常应用程序会被终止,仅靠应用程序本身无法恢复。
比如StackOverFlowError、VirtualMachineError、OutofMemoryError、ThreadDeath。
Exception
程序本身可以处理的异常,可以通过catch来进行捕获,通常遇到这种错误,应对其进行处理,使应用程序可以继续正常运行。
Exception又可以分为运行时异常(RuntimeException,又叫非受检查异常unchecked Exception)和非运行时异常(又叫受检查异常checked Exception)。
checked Exception
就是在写代码的时候,需要写try catch的Exception,这种Exception一般不会影响主体程序,可以由程序员手动诊断修复异常。比如IOException、SQLException、ClassNotFoundException。
unchecked Exception
又称RunTimeException,这一类就是在代码处理了checked Exception之后,运行时候仍然会遇到的Exception。
比如NullPointerException、ClassCastException、ArithmeticException、IllegalArgumentException、IndexOutOfBoundsException(包括ArrayIndexOutofBoundsExcpetion;StringIndexOutofBoundsExcpetion)、NumberFormatException。