Exemplo de try catch?

3 respostas
J

Alguém poderia me mostrar um exemplo do uso do try catch?
Mas eu to falando com o uso do throws, pois ouvi falar que muitas vezes
a excessão não pode ser tratada naquele instante, e que seria tratada pelo método que o chamou. Poderiam me dar um exemplo de um método que lança a excessão e um outro que trataria essas excessão?
E se puderem explicar o código que postarem?
Pois o uso do try no método que será gerado eu sei, eu não sei é como lançar e tratar em outro método.

Agradeço desde já!

3 Respostas

F
import java.sql.*;

public class Teste {

   Connection conn;

   try {
       Connection conn = this.getConnection();
   }
   catch (Exception e) {
       System.out.println(e.getMessage());
   }
   finally {
       if (conn != null) {
           if (!conn.isClosed()) {
              try {
                 conn.close();
              }
              catch (SQLException ex) {} 
           }
       }
   }

   public Connection getConnection throw Exception () {
        throw new Excpetion("Erro ao criar uma conexão");
   }
}
F

Cometi um erro, no método getConnection o certo é throws Exception e não throw.

No caso do método getConnection estou codificando que se algum erro ou alguma validação não for atendida ela irá devolver uma exceção, throws Excpetion na assinatura do método, e neste caso a rotina que esta chamando-a deverá tratar esta exceção.
Neste caso estou criando uma exceção throw new Excpetion com uma mensagem mais clara do que aquela que é retornada pelo Java.

No meu try…catch estou tratando este retornando colocando a mensagem na tela. O finally sempre será executado mesmo que ocorra uma exceção. No caso de conexões é bom fechá-las, por isso o conn.close no finally, como o close tb pode devolver uma exceção (SQLException) ele tb estará dentro de um try…catch.

Espero ter ajudado

O
public class X throws Erro {
	// coloque algo que vai dar uma excessão
}

public class Y {
	public static void main(String[] arqgs) {
		try {
			private X x = new X();
			x.metodoComExcessao(); // exemplo
		}
	}
}
Criado 21 de agosto de 2005
Ultima resposta 21 de ago. de 2005
Respostas 3
Participantes 3