资源关闭与finally块的关注

时间:2014-03-22 09:58:15

标签: java exception-handling

在我的代码中,有一个内存泄漏,由于一些未清理的资源问题,所以我正在关闭finally块中的那些资源,因为我知道最终总是执行。

在许多函数中,我返回相同的资源,我将在finally块中关闭,我的理解是首先根据异常计算try或catch的return语句,然后finally将关闭资源然后将返回上面计算的资源,请分享您的观点,我是对还是错。

还有一个查询,如果在我的代码的某些函数中没有异常处理,我将使用try with finally,这是一个不错的选择或者最后尝试使用catch

为第二和第三种情况发布一些代码。

public Set<> processMessage(Object message) throws Exception {
        HtmlPage Page = null;
        try{
            Page = getPage();
            return inPage.getWebClient().getCookieManager().getCookies();
            }
        finally
        {   
            if(Page!=null)
            Page.cleanUp();
        }

    }

和第三种情况如果我必须返回在

之类的方法中处理的HtmlPage
        public HtmlPage simulate(HtmlElement element,
            MyContext context) {

try{

        HtmlPage Page = null;
        //getting the page here and suppose that there are various condition on the basis of this Page value is //evaluated and returned in some situation. 

        return Page;
    }
    finally
    {
        if(Page!=null)
            Page.cleanUp();

    }

    }

0 个答案:

没有答案