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语句中业务代码执行成功,返回的赋值信息仍然不是业务需要的数据。

相关文章
|
Java Spring
【注解】Spring AOP 面向切面编程之@Around的详细用法
【注解】Spring AOP 面向切面编程之@Around的详细用法
3816 0
|
8月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
436 188
|
编译器 Android开发 开发者
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
Lambda表达式和匿名函数都是Kotlin中强大的特性,帮助开发者编写简洁而高效的代码。理解它们的区别和适用场景,有助于选择最合适的方式来解决问题。希望本文的详细讲解和示例能够帮助你在Kotlin开发中更好地运用这些特性。
382 9
|
监控 Java
线程池大小如何设置
在并发编程中,线程池是一个非常重要的组件,它不仅能够提高程序的响应速度,还能有效地利用系统资源。合理设置线程池的大小对于优化系统性能至关重要。本文将探讨如何根据应用场景和系统资源来设置线程池的大小。
|
Java
Java 中 MessageFormat.format 用法
Java 中 MessageFormat.format 用法
556 1
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
Java 测试技术
【Java】已解决java.util.concurrent.CancellationException异常
【Java】已解决java.util.concurrent.CancellationException异常
782 0
|
存储 Java
JAVA中String长度限制解决超出字符长度
JAVA中String长度限制解决超出字符长度
478 1
|
机器学习/深度学习 人工智能 自然语言处理
16CODEIPPROMPT:顶会ICML’23 从GitHub到AI,探索代码生成的侵权风险与缓解策略的最新进展:训练数据`有限制性许可;模型微调+动态Token过滤【网安AIGC专题11.8】
16CODEIPPROMPT:顶会ICML’23 从GitHub到AI,探索代码生成的侵权风险与缓解策略的最新进展:训练数据`有限制性许可;模型微调+动态Token过滤【网安AIGC专题11.8】
468 2

热门文章

最新文章