Try+catch+return == erro!

Bom dia!
Comecei com Java a pouco tempo… mas pelas duvidas acho que estou postando no lugar certo, eu pesquisei no forum no google e não achei esse poste foi minha ultima tentativa de entender
o porque quando faço algo assim:

[code]//variaveis declaradas e iniciadas no inicio da classe…
public String atu2(){
conexao con = new conexao();
con.conecta();
try {
cont c = new cont();
if(c.contaLinhasNoWhere(“nfinfo”)==0){
cood.setText(“Código de Venda: 1”);
cooo=1;
}else{
con.executeSQL(“select * from nfinfo”);
con.resultSet.last();
coo = Integer.parseInt(con.resultSet.getString(“idnf”));
coo++;
cood.setText("Código de Venda: "+coo);
cooo=coo;
return cooo; //ERRO AQUI!

    } }catch (Exception ex) {
        JOptionPane.showMessageDialog(null, "Erro 35: "+ex);}

//return cooo;
}[/code]

da um erro no meu return, ja tentei por ele fora do try,catch o erro para mas a variavel fica null.
agradecido desde já!

ola amigo

O seu método retorna uma String, portanto obrigatoriamente ele deverá ter um return com valor String garantido. No caso o seu return dentro do bloco try não é garantido e por isso funciona com o return fora dos blocos try catch .

Agora se com o valor fora dos blocos try catch esta sempre voltando nulo, é por que esta acontecendo algum erro dentro do seu bloco try e não esta deixando jogar algum valor para dentro de pooo . Depure a rotina que garantidamente o erro esta ali…

[]s

O mais triste é isso estar em Java Avançado…
Cara, use o eclipse que ele diz qual o problema do seu codigo
antes mesmo de vc executa-lo.
Como nosso amigo ali falou o return é obrigatório ,
cade ele caso ocorra erro?
Cade ele dentro do primeiro if?

hehe :oops:
esses erros não se repetirão mais
valeu a ajuda ae!