• 测试技术
  • 博客
  • 视频
  • 开源
  • 论坛
  • 沙龙
  • 下载
  • 杂志
  • 招聘

字号: | 推荐给好友 上一篇 | 下一篇

Java 理论与实践: 良好的内务处理实践

发布: 2008-6-13 14:36 | 作者: 不详 | 来源: 领测软件测试网编辑整理 | 查看: 6次 | 进入领测软件测试网论坛讨论

领测软件测试网 软件测试技术门户7S9_l.\(P]i'Cz,lI

软件测试技术门户:s5Nds6R#]B2l

 清单 4. 可靠的释放多个资源的方法软件测试技术门户WZ[X+r1H

    public void enumerateBar() throws SQLException {
        Statement statement = null;
        ResultSet resultSet = null;
        Connection connection = getConnection();
        try {
            statement = connection.createStatement();
            resultSet = statement.executeQuery("SELECT * FROM Bar");
            // Use resultSet
        }
        finally {
            try {
                if (resultSet != null)
                    resultSet.close();
            }
            finally {
                try {
                    if (statement != null)
                        statement.close();
                }
                finally {
                    connection.close();
                }
            }
        }
    }
    private Connection getConnection() {
        return null;
    }
软件测试技术门户z-Lq'j|T:I

/L8HB1n'l2R5`.b

J-^ Av#^几乎每一样东西都可以抛出异常软件测试技术门户{s~'R7q i kFUp

.B} {:B%{v'm_我们都知道应该使用 finally 来释放像数据库连接这样的重量级对象,但是我们并不总是这样细心,能够记得使用它来关闭流(毕竟,终结器会为我们做这件事,是不是?)。很容易忘记在使用资源的代码不抛出已检查的异常时使用 finally。清单 5 展示了针对绑定连接的 add() 方法的实现,它使用 Semaphore 来实施绑定,并有效地允许客户机等待空间可用:

+DP;thF P-f4]?*c 软件测试技术门户 u%vY yHq|e


b2TS