Throws NullPointerException

Pessoal,

Como faço pra poder arremessar um NullPointerException.

O método insereTransacao, vai invocar o método pesquisarTipoTran que tem como finalidade retornar o resultado de uma busca no database.

Devido o metodo pesquisarTipoTran ser utilizado várias vezes em métodos distintos, gostaria de levantar e arremessar uma excessão para que o método que o chamou (invocou) capture e trata.

O objetivo principal é eu não necessitar toda fez executar um if objeto == null, pois utilizo vários metodos de acesso ao database. Esse caso é só um exemplo.

Então, gostaria de saber se posso fazer tal tratamento.

Abaixo, está o código dos dois métodos citados.

Desde já agradeço a atenção.

[code] @HibernateTransaction
public boolean insereTransacao(int cli, int TipoTran){
boolean a = true;
try{
DaoTipoTran daoTpTran;
TipoTran tipoTran;

        Transacao tran;
        DaoTransacao daoTran;
        
        Cliente cliente;
        DaoCliente daoCliente;
        
        float valor;
        
        //BUSCAR OS VALORES DO TIPO TRAN
        daoTpTran = new DaoTipoTran();            
        tipoTran = daoTpTran.pesquisarTipoTran(TipoTran);

        //BUSCAR CLIENTE
        daoCliente = new DaoCliente();
        cliente = daoCliente.pesquisarCliente(cli);

        //ATRIBUIR PARA O OBJETO TRAN                                  
        tran = new Transacao();            
        tran.setFnCliente(cliente);
        tran.setFnTipoTran(tipoTran);
        tran.setDnQtde(1);
        if (tipoTran.getDcCreditoDebito().equals("D"))
           valor = - tipoTran.getDnValor();
        else
           valor = tipoTran.getDnValor();
        tran.setDnValor(valor);
        Date d = new Date(System.currentTimeMillis()); 
        Timestamp t = new Timestamp(d.getTime());
        tran.setDdAcessDate(t);
        
        //INSERIR TRAN
        daoTran = new DaoTransacao();
        a = daoTran.inserirTransacao(tran);
   }catch (RuntimeException e) {
        a = false;            
        e.printStackTrace();
   }catch (Exception e) {
        a = false;            
        e.printStackTrace();            
    }finally{            
        return a;
    }
}

[/code]

    public TipoTran pesquisarTipoTran(int tpTran) throws RuntimeException {
        Query select = null;        
        TipoTran tipoTran = null;
        try{            
	    // Consultando e recuperando objeto Amdministrador da base de dados	    
            select  = HibernateHelper.currentSession().createQuery("FROM TipoTran AS tptran WHERE tptran.pnTipoTran = :tipoTran");
            select.setInteger("tipoTran",tpTran);
            if ( select.list().size() > 0)                 
                tipoTran = (TipoTran) select.iterate().next();
            else{
                System.out.println("Caiu no ELSE!!!");
                throw new RuntimeException("TipoTran não encontrado "+tpTran);   
            }                
                
            }finally{			
                return tipoTran;			
        }			
    }

Eu entendi sua resposta e agradeço sua atenção.

Mas eu gostaria de tratar o retorno de cada método, pq vou necessitar fazer, em alguns casos, várias busca no database, considerando, se uma delas já me retornar nulo, nem vou precisar executar as outras. Assim eu ganho performace.

Ganho performace pq não precisarei acessar o objeto referente a resposta da busca para então, o método que invocou tratar o NullPointerException.

Deixa eu ver se entendi…

O seu metodo “pode” lançar uma excessão do tipo NullPointerException certo? E vc não quer testar se o objeto é igual a null. Se for isso, vc não precisa lançar a excessão “manualmente” pois se vc tentar acessar o objeto null ele vai lançar essa excessão pra vc, ai vc trata no metodo q chamou…

Att.