try{}catch{}finally{}和return

总结:在try{}代码块中如果遇到抛出的异常需要进行异常处理,当程序抛出异常时停止执行try{}中代码,进入catch{}代码块执行异常处理代码,在执行完成后如果存在finally{}代码块则进入finally代码块执行,接着会执行后面的代码直到return。

测试代码如下:
public static void main(String[] args) {
		System.out.println(test());
	}
	public static int test(){
		try {
			int i=1/0;
			System.out.println(i);
			return i;
		} catch (Exception e) {
			System.out.println("异常代码");
			return 1;
		}finally{
			System.out.println("finally代码");
		}
//		System.out.println("最后的代码");
//		return 0;
	}

如果代码抛出异常则执行结果如下:

异常代码
finally代码
1

如果代码正常执行:

0
finally代码
0

try{}catch{}代码块中的return方法总是在finally之后执行,将return放到最后。

public static void main(String[] args) {
		System.out.println(test());
	}
	public static int test(){
		try {
			int i=1/0;
			System.out.println(i);
			return i;
		} catch (Exception e) {
			System.out.println("异常代码");
		}finally{
			System.out.println("finally代码");
		}
		System.out.println("最后的代码");
		return 2;
	}

异常执行结果如下:

异常代码
finally代码
最后的代码
2

正常执行结果如下:

0
finally代码
0

如果try和catch中都有return则finally代码块之后不能出现任何代码

System.out.println("最后的代码");
return 2;

不建议把return放到finally块中。

猜你喜欢

转载自blog.csdn.net/qq_36440298/article/details/88644913