java中所有的异常都是java.lang.Throwable类的子类,一般包含两大类:Exception和Error
Exception:一般是程序可以自己处理的异常,可以通过try-catch去捕获处理或者throws抛出。又可分为运行时异常(非受检查异常)和检查时异常
一般程序强制调用者解决的异常就是检查异常,比如:IOException,SQLException,ClassNotFoundException
Error:程序无法自己处理,一般会中断程序的运行,比如系统崩溃、内存溢出。(StackOverFlowError,VirtualMachineError,OutOfMemoryError)
对于运行时异常的处理方式有两大类:try-catch-finally,throws(throw)
第一种:捕获处理异常,执行try{}代码块中的代码,如果有异常则进入catch中处理,不管有没有最终都会进入finally代码块。注意return与finally语句的执行顺序:如果没有异常发生,return存在于try中,则先执行finaly语句再执行return,但是注意这里return的值是再try中执行后的值,而不是finally执行后更新的值,这里的return只是起到一个暂存值的作用,当返回值是一个引用数据类型时,如果finally中的操作语句对引用数据类型进行了更改,注意return 暂存的是引用数据类型的地址值,因此finally中对数据更新也会对return 暂存的数据更新,最后返回的数据就是finally更新后的数据;如果finally中也有return语句,则finally中的return会把try中的return 语句覆盖掉;
第二种:我们可以不对异常进行处理而是直接抛出。throws是声明在方法上,可以抛出多个异常。throw生命在方法体内部,随时抛出异常,只能抛出一个。
标签:return,处理,抛出,捕获,try,finally,异常 From: https://www.cnblogs.com/ganruiTT/p/16658739.html