try catch return语句情况分析

  • try catch
  • 无finally语句
  • 写在最后


try catch

try catch语法是一种对应于异常处理的语句,其中try语句内用于编写有异常存在可能的语句,而catch语句内用于编写捕获到异常的类型以及对异常对象的处理方法,本文主要以java语言为示例来演示try catch语句关于return情况的分析。
示例代码如下,后续的测试都会基于当前代码改动测试

public class DemoController {


    public static void main(String[] args) {

        String test = test();

        System.out.println(test);

    }


    static String test() {

        String res = null;

        try {

            //int i = 1/0;

            res = "one";

        }catch (Exception e) {

            e.printStackTrace();

            res = "two";

        }finally {

            res = "three";

        }

        return res;

    }

}

无finally语句

下面开始讨论对应的情况:

1.无异常,try语句正常执行,结果返回try语句中的赋值数据,执行结果如下

try catch return语句情况分析_开发语言


2.有异常,执行catch中的赋值语句,打印异常信息,返回catch中赋值数据,执行结果如下

try catch return语句情况分析_try catch_02


有finally语句

1.无异常,因为finally中有赋值,所以返回finally中赋值数据,执行结果如下

try catch return语句情况分析_开发语言_03


2.有异常,打印错误信息,同时因为finally中有赋值,所以返回finally中赋值数据,执行结果如下

try catch return语句情况分析_java_04

写在最后

由于try catch finally结构中finally中代码一定会执行,因此建议不要在finally中放置返回数据的赋值语句,如果finally中有当前方法返回的最后数据赋值语句的话,那么即使try语句中业务代码执行成功,返回的赋值信息仍然不是业务需要的数据。