1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

dúvidas sobre try catch

public void AbrirConexao(){
    try{
        conn = DriverManager.getConnection(url, usuario, senha);
        System.out.println("Conectado");
    }catch(Exception ex){
                System.out.println("Erro ao tentar estabelecer uma conexão com o banco de dados!");
        System.out.println("Erro: " + ex.getMessage());
    }
}

Este caso pode ser considerado como tratamento? Por que aí não trata o erro, apenas o informa.

public Connection getConnection(){
    try{
        return DriverManager.getConnection(url, usuario, senha);
    }catch(Exception ex){
        throw new RuntimeException();
    }
}

Neste outro caso, esse throw new RuntimeException() foi usado pois não soube como tratar o erro? E teria como trata-lo?

Edit:

Lendo sobre try catch, vi que é recomendado usar uma exceção específica a qual condiz com o erro que pode acontecer ou que aconteceu. Como por exemplo:

int[] array = new int[10];
try {
  for (int i = 0; i <= 15; i++) {
    array[i] = i;      
    System.out.println(i);
  }
} catch (ArrayIndexOutOfBoundsException e) {
  System.out.println("erro: " + e);
}

No caso, isso pode ser corrigido usando array.lenght no lugar do 15. Logo é desnecessário esse try catch já que posso resolver o problema. Então, se eu sei especificar o problema, posso resolve-lo, e o try catch é desnecessário. Eu achava que try catch era para tratar o problema no sentido de resolve-lo, mas pelo que eu vi, ele é usado para informar o problema e, que aquele que o informou não soube corrigi-lo. É isso mesmo ou estou completamente enganado?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.