Thorwable类(表示可抛出)是所有异常和错误的超类,两个直接子类为Error和Exception,分别表示错误和异常。
Error是程序无法处理的错误,它是由JVM产生和抛出的。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。 比如 ThreadDead 栈溢出等
Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时异常。程序中应当尽可能去处理这些异常。
运行时异常都是RuntimeException类及其子类异常这些异常是非守检异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。 比如:数组越界
非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException,ClassNotFoundException (这三个都是 针对对类外文件操作的异常 )等以及用户自定义的Exception异常,一般情况下不自定义检查异常
处理异常主要包括 try--catch 和 throws 还有一个finally表示最终一定会执行的代码,为异常处理提供一个统一的出口,对程序状态作统一的管理,通常会进行资源的清除。
try--catch 捕获抛出的异常,try中放可能出现异常的代码,catch中放置若异常的处理手段。
throws :向外抛出异常,让之后接受异常的方法去处理。加在方法后表明这个方法只是抛出不处理。
throws可能会抛出异 常。
throw是抛出一个异常类的实例化对象。并且用在方法里面,throw一定会抛出这个异常。