try catch return语句情况分析

简介: 简要讲述一下try catch代码中return语句返回值情况分析

try catch

try catch语法是一种对应于异常处理的语句,其中try语句内用于编写有异常存在可能的语句,而catch语句内用于编写捕获到异常的类型以及对异常对象的处理方法,本文主要以java语言为示例来演示try catch语句关于return情况的分析。

示例代码如下,后续的测试都会基于当前代码改动测试

publicclassDemoController {
publicstaticvoidmain(String[] args) {
Stringtest=test();
System.out.println(test);
    }
staticStringtest() {
Stringres=null;
try {
//int i = 1/0;res="one";
        }catch (Exceptione) {
e.printStackTrace();
res="two";
        }finally {
res="three";
        }
returnres;
    }
}

无finally语句

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

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

image.png

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

image.png

有finally语句

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

image.png

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

image.png

最后

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

相关文章
每日一道面试题之try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
每日一道面试题之try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
163 0
try catch finally,try 里面有 return,finally 还执行吗?
try catch finally,try 里面有 return,finally 还执行吗?
68 0
try...catch中,catch加了return,后面的代码是不会执行的
try...catch中,catch加了return,后面的代码是不会执行的
105 0
|
JavaScript 前端开发
Throw 语句
Throw 语句
60 0
throw 语句
throw 语句
55 0
|
编译器
throw后报错,找不到报错处。throw、throws 、try/catch 作用区别,自定义Exception异常,printStackTrace()方法的
throw后报错,找不到报错处。throw、throws 、try/catch 作用区别,自定义Exception异常,printStackTrace()方法的
169 2
try-catch-finally结构的finally语句 一定会执行吗? fianlly语句遇到System.exit(0);一定不执行吗?
try-catch-finally结构的finally语句 一定会执行吗? fianlly语句遇到System.exit(0);一定不执行吗?
174 0
try-catch-finally结构的finally语句 一定会执行吗? fianlly语句遇到System.exit(0);一定不执行吗?
|
编译器
有return的情况下try catch finally的执行顺序(最有说服力的总结)
有return的情况下try catch finally的执行顺序(最有说服力的总结)
164 0
|
NoSQL Java 数据库连接
finally 和 return,到底谁先执行
经常有人面试被问到:finally 和 return,到底谁先执行呢?