在我的代码中,有一个内存泄漏,由于一些未清理的资源问题,所以我正在关闭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();
}
}