return和finally的执行顺序简介说明

戚薇 Java经验 发布时间:2022-07-08 22:58:29 阅读数:14797 1
下文笔者讲述return和finally的运行顺序,如下所示
在Java中
异常处理主要由try、catch、throw、throws和finally5个关键字处理
Java代码中
  一旦出现了异常
   而且没有被try-catch块捕获的话
   系统会把异常一直往上层抛
   直到遇到处理代码
   如果一直没有处理块,就抛到最上层
   如果是多线程就由Thread.run()抛出
   如果是单线程就被main()抛出
     抛出之后
      如果是子线程,这个子线程就退出了
      如果是主程序抛出的异常,那么这整个程序也就退出了。
例:
 
    try {
        //step1
        System.out.println("try...");
        throw new RuntimeException("异常1...");
    }catch (Exception e){
        //step2
        System.out.println("catch。。。");
    }finally {
        //step3
        System.out.println("finally。。。");
    }
    //step4
    System.out.println("end...");

上述的代码中由于抛出的异常被顺利catch住
 所以当前线程不会结束
  程序会继续往下执行
  step4这步代码会被打印出来 
例2
	try {
	    System.out.println("try...");
	    throw new RuntimeException("异常1...");
	}catch (Exception e){
	    System.out.println("catch。。。");
	    throw new RuntimeException("异常2...");
	}finally {
	    System.out.println("finally。。。");
	}
	System.out.println("end...");

上面的java代码,
由于catch块中又抛出了一个异常
  而这个异常没有相应的catch块处理
  所以系统会向上抛这个异常
 最后的打印语句也就的不到执行。

try、catch、finally、throw和throws使用归纳

try、catch和finally都不能单独使用
   只能是try-catch、try-finally或者try-catch-finally。

try语句块监控代码,出现异常就停止执行下面的代码
   然后将异常移交给catch语句块来处理
   catch块执行完之后代码还会继续往下执行
finally语句块中的代码一定会被执行,常用于回收资源
throws:声明一个异常,告知方法调用者
throw:抛出一个异常,至于该异常被捕获还是继续抛出都与它无关
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202207/16572923313940.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者