异常,是在执行函数时出错导致的,而函数是层层嵌套的层级调用,形成调用栈。因此,多层嵌套函数中一个出现错误,其余的也都会出错不能执行。当这些函数全部输出异常信息时就形成异常追踪栈。
最开始发生异常的代码处,叫做,异常抛出点。而因为一个函数异常而发生的其余的异常,一直追溯到调用栈栈底。这样的行为,叫做,异常的冒泡。
异常处理try-catch-finally的基本语法,需要注意的有以下几点:
1.try、catch、finally中各自的局部变量只能是在局部使用,彼此不可以互用。
2.每一个catch块用来处理一个异常,运行顺序是从上到下进行匹配。如果同一个try中的catch块之间存在父子关系,应该将放在上边,父类放后边。
throws函数声明,如果一个方法内部的代码执行时抛出检查异常(checked exception),而方法没有完全处理掉这个异常,那么javsc就要求必须在方法名后边写上throws关键字来处理,否则编译不通过。
throws只是抛出异常的类型而不具体处理,抛出异常让调用者来处理。
finally块:不管是否有异常,只要对应的try执行了,他都会执行。在编程中,要养成一个好习惯,即,在try中打开资源,在finally中关闭资源。在finally中只写清理资源的语句最合适,不要在这里面处理任何问题。而返回return语句,最好都写在函数的最后面,不要写在try-catch-finally中。
好了,我对异常的理解,至今就是这样了,以后会懂得更多的,经验都是慢慢积累的,加油吧
原文地址:https://www.cnblogs.com/qimox1314/p/8951717.html
时间: 2024-10-17 04:03:34