try-catch-finally执行流程:
1.首先执行try,没有发生异常,直接跳转finally;发生异常,跳转到相应的catch语句进行处理
2.catch有多个,可以捕捉不同的异常情况;
3.在跳转到相应的finally语句。
无论怎么样,finally都将会被执行,通过return退出。
Error和ExException的区别:
error:编译时出现的错误,通过修改程序解决问题。
Exception:程序可以处理,可以捕捉,又可以恢复的程序。(尽快处理,运行程序)。
常见的Runtime和Exception
illegalArgumentException:向方法传递了一个不合法或者不正确的参数。
illegalStateException:java环境或者应用不满足请求操作。
NullpointerException:空指针异常。
IndexOutOfBoundsException:索引超出边界异常。
try,catch中捕获到的都是CheckedException。
io包中的IOExecption及其子类,都是CheckedException。
throws,throw,try,catch,finally的意义
try先执行,出现异常,系统抛出(throws)异常,相应的catch去捕捉,最后在finally中进行处理。
try:预防所有的异常情况
catch:捕捉相应类型的异常情况
throw:明确地抛出异常。
throws:用来表明一个成员函数可能抛出的各种异常。
共同点:只抛出,由调用者负责处理。
不同处:
1.throws(方法头)用于申明异常,在方法申明时候使用;throw(用于方法内部),抛出异常对象。
2.throws可以多个,throw一次一个。
3.throws抛出异常后,调用者也要抛出异常;throw抛出后,可以不处理,但编译不会出错。