异常处理
异常处理的格式,如下:
对于不同的异常分别处理时,应当将小异常处理写在前面,大异常处理写在后面,如下:
问:既然finally语句块后的语句在异常处理完成之后也会执行,那为什么不把finally语句块中的代码放到后面执行呢?
答:finally语句块中的语句时一定会执行的。如果希望代码无论如何都要执行,则一定要放在finally语句块中。
以下三种情况下,finally语句块后面的代码可能不会执行:
Throw new Exception(); //抛出一个自定义异常
Throw; //将异常向上一级抛出,让上一级来继续处理这个异常。(这种写法只能在Catch块中写)
如下图:
M2()方法继续处理M1()抛过来的异常
-----------------------tips------------------
关于引用类型的值改变
值类型
方法在编译时会为要返回的变量再生成一个变量用于返回。也就是说如果这个变量时返回值,那么编译时就会为它生成两个变量,一个用于操作,一个用于返回。具体如下图:
引用类型

浙公网安备 33010602011771号