异常分为编译时异常和运行时异常
编译时异常比如,String a = 123;编译时异常都是可以被处理的异常,未处理的话,无法运行
处理方法有两种,一个是用 try 。。。catch块来处理
另一种就是不知道如何处理,抛出该异常
运行时异常就是代码在运行时才发生的异常,如被零除异常,数组下标越界异常

error和exception的区别

Error类和Exception类的父类都是Throwable类
Error类一般是指与虚拟机相关的问题:
系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出,这类错误会导致程序中断,且无法靠程序本身进行恢复或者预防
Exception类表示程序可以处理的异常,可以捕捉且可以恢复,遇到这类异常,尽可能处理异常

常见的RuntimeException

NullPointerException:空指针异常
ClassNotFoundException:指定的类找不到
NumberFormatException:字符串转为数字异常
IndexOutOfBoundsException:数组角标越界异常
ClassCastException:数据类型转换异常