Eu estou achando que sim, pois vendo os cursores abertos, sempre estao, baixos, ou seja, com valor 1, mas é bom confirmar né…
Query:
select o.sid, osuser, machine,
count(*) num_curs
from v$open_cursor o, v$session s
where o.sid=s.sid
group by o.sid, osuser, machine
order by o.sid;
Isso mesmo o bloco finally sempre será executado, e ele é executado antes do return, por exemplo execute esse código abaixo que verá que o nuemro 2 será impresso antes do 1:
public class Teste {
public static void main(String[] args)
throws Exception
{
Teste t = new Teste();
System.out.println(t.mensagem());
}
public String mensagem()
throws Exception
{
try{
return "1";
}catch(Exception e){
throw new Exception("erro");
}finally{
System.out.println("2");
}
}
}