- 在程序的运行过程中才会产生异常,一旦程序执行中产生了异常之后将自动进行指定类型的异常类对象实例化处理;
- 如果此时程序中没有提供异常处理的支持,则会按照JVM默认异常处理方式,首先进行异常信息的打印,而后直接退出程序;
- 如果此时程序中有提供异常处理,那么这个产生的异常类的实例化对象将会被try捕获。
- try捕获到异常之后与其匹配的catch中的异常依次的比对。
- 如果没有任何匹配成功,则执行finally~,判断是否真实处理过异常信息,如果没有,走jvm默认异常处理方式。
ArithmeticException
ArrayIndexOutOfBoundsException
java.lang.Object
- java.lang.Throwable
- java.lang.Exception
- java.lang.RuntimeException
- java.lang.ArithmeticException
java.lang.Object
- java.lang.Throwable
- java.lang.Exception
- java.lang.RuntimeException
- java.lang.IndexOutOfBoundsException
- java.lang.ArrayIndexOutOfBoundsException
由此可见,最大的异常类是java.lang.Throwable,它的子类是Error,Exception
- Error: eg.NoClassDefFoundError 此时程序还未执行,开发者无法处理
- Exception:程序中出现的异常,开发者可以处理,如果有多个异常捕获,范围较大的异常捕获放在最后面。