异常类(Throwable)的种类
Java异常类(Throwable)可以分为两种:
- 错误Error:与虚拟机相关的问题,Java 虚拟机无法解决的严重问题;如:StackOverflowError 和 OOM。
 - 异常Exception:程序编码错误或外界因素导致等,能被系统捕获并处理; 
- 检查型异常(CheckedException):编译器要求强制处理(try catch);因外界因素导致,一般发生在编译阶段;除RuntimeException外,Exception及其子类。
 - 非检查型异常(RuntimeException):编译器不要求强制处理;因编码设计不当导致,一定是程序员的错误,故可以避免;RuntimeException及其所有子类;
 
 
常见的异常Exception
- 非检查型异常(RuntimeException及其子类,因编码设计不当导致): 
- 数组下标越界ArrayIndexOutOfBoundsException
 - 空指针访问NullPointerException
 - 数字格式化异常NumberFormatException
 - 算术异常ArithmeticException
 - 类型转换不匹配ClassCastException
 - 非法参数illegalArgumentException
 - 输入不匹配InputMismatchException<