EJB lança NoResultException, mas qdo chega em outro EJB vem como EJBException[resolvido]

Estou usando um session ejb(facade) para regras e outro session para dao/eao para fazer questoes de acesso a banco.
Quando nao existe um registro no banco esta chegando no session facade um EJBException e nao um noresultexception. Dentro do EAO é gerada
uma noresultexception corretamente, mas qdo lança para capturar no session vem como EJBException.
É correto esse comportamento ?

[code]
@stateless
class ClasseEAO {

@persistecontext
EntityManager entitymanager;

//primeira tentativa
public Cobranca findCobrancaByNossoNumero(String nossoNumero) {
return (Cobranca) entityManager.createNamedQuery(Cobranca.COBRANCA_BY_NOSSONUMERO).setParameter(“nossonumero”, nossoNumero)
.getSingleResult();
}

//segunda tentativa
public Cobranca findCobrancaByNossoNumero(String nossoNumero) {
try {
return (Cobranca) entityManager.createNamedQuery(Cobranca.COBRANCA_BY_NOSSONUMERO).setParameter(“nossonumero”, nossoNumero)
.getSingleResult();
} catch (NoResultException e) {
throw e;
}
}
}

@stateless
class ClasseFacade{

@EJB
ClasseEAO cobrancaEAO;

void metodo(){
try {
Cobranca cobranca = cobrancaEAO.findCobrancaByNossoNumero(nossoNumero);
//…
} catch (NoResultException e) { //a excecao deveria cair aqui
return false;
} catch (Exception e) { //a excecao EJBException cai aqui.
//o que chega: javax.ejb.EJBException: javax.persistence.NoResultException: No entity found for query
return false;
}}[/code]

É esse comportamento mesmo, quando se lança uma exceção filha de RunTimeException no EJB. No caso NoResultException é um RuntimeException.
Crie uma exceção (que não herder de RunTimeException), ou trata esse NoResultException de outra maneira por exemplo retornando “null”;

Era isso mesmo, valeo!