博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
eclipse黄色警告(finally block does not complete normally) ,不建议在finally中使用return语句...
阅读量:5896 次
发布时间:2019-06-19

本文共 841 字,大约阅读时间需要 2 分钟。

在eclipse中编写例如以下的代码,eclipse会给出黄色告警:finally block does not complete normally。

public class Test{    public static void main(String[] args)    {        System.out.println(m1(null));    }    public static String m1(String name)    {        try        {            name.length();        }        finally        {            return name + "_test";        }    }}

这段代码执行结果是:控制台打印null_test。不会抛出空指针异常(被JVM吞掉了)。

程序出现了同意异常,可是却被JVM私吞,显然这是不好的做法。不建议在finally块中使用return语句的原因例如以下:

1、finally块中的return语句会覆盖前面的return语句(try块、catch块中的return语句)。会导致非常难推断方法的返回结果,easy得出错误的结论。

2、假设finally块中包括了return语句,即使前面的try或catch块抛出了异常,则调用该方法的语句也不会获得catch块又一次抛出的异常。而是会得到finally块的返回值。而且不会捕获异常。

 

总之在finally中使用return是不好的编程实践,应该避免使用。关于try-catch-finally中使用return的返回值问题,能够看下这篇博客。列举了非常多种情况,分析也非常具体。就算是有经验的程序猿。也可能会错误地推断方法返回结果,不信你能够去试试。

转载于:https://www.cnblogs.com/clnchanpin/p/6801808.html

你可能感兴趣的文章
ResourceCursorTreeAdapter
查看>>
抢票软件依旧跑得欢 记者25分钟抢两张热门票
查看>>
软件测试工程师的职业生涯规划
查看>>
博弈论之软件测试的价值
查看>>
Windows Server 2012 存储 (一)统一体验的存储方式
查看>>
Microsoft Dynamics CRM 2013 竞争对手 介绍
查看>>
11步教你选择最稳定的MySQL版本
查看>>
Electron —— Cannot find module ‘jquery.min.js’(II)
查看>>
python下paramiko模块学习之一:ssh登录和执行命令
查看>>
***S 2012 表达式 -- 颜色管理示例
查看>>
Wvtool学习(二):实现wvtool分词功能
查看>>
MySQL如何使用DNS
查看>>
巧用倍增的思想求a^n
查看>>
oracle数据文件管理
查看>>
VOA上一句英语的翻译
查看>>
Windows 8.1 重复数据删除——概念(一)
查看>>
HAproxy负载均衡-ACL篇
查看>>
[jQuery] Ajax的应用
查看>>
<進階&高級>ADT線上視頻&PPT課件
查看>>
PXE实现Linux的自动安装
查看>>