Questão nº 40
Questão de Tecnologia da Informação · FCC TRT20 2024 (nº 40)
Em uma aplicação Java, considere as instruções abaixo.
```java
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conectado = DriverManager.getConnection("jdbc:mysql://localhost:3306/bd", "root", "a9Kb08c");
```
Em condições ideais, as EXCEÇÕES que precisam ser tratadas nessas linhas são
- A`ClassNotFoundException` e `SQLException`. (alternativa correta)
- B`JDBCException` e `SQLException`.
- C`MySQLException` e `DatabaseException`.
- D`JDBCException` e `ConnectException`.
- E`DriverException` e `DatabaseException`.
Resposta comentada
Gabarito Alternativa A
Quando você escreve código Java que pode falhar de maneiras previsíveis (como tentar carregar algo que não existe ou se conectar a um serviço indisponível), o compilador te obriga a lidar com esses possíveis erros, chamados de exceções checadas.
- (A) Correta:
ClassNotFoundExceptioné lançada pelo métodoClass.forName()se a classe do driver JDBC não for encontrada.SQLExceptioné lançada pelo métodoDriverManager.getConnection()se houver qualquer problema ao tentar estabelecer a conexão com o banco de dados (credenciais erradas, banco offline, etc.). Ambas são exceções checadas que precisam ser tratadas. - (B) Incorreta:
JDBCExceptionnão é uma exceção padrão do Java SE lançada por essas operações; a armadilha aqui é que o termo "JDBC" remete ao contexto, mas a classe de exceção correta para o carregamento do driver éClassNotFoundException.SQLExceptionestá correta, mas a primeira parte torna a alternativa incorreta. - (C) Incorreta:
MySQLExceptioneDatabaseExceptionnão são classes de exceção padrão do Java SE que seriam lançadas diretamente por essas linhas de código. - (D) Incorreta:
JDBCExceptioné incorreta (conforme explicado em B).ConnectExceptioné uma exceção de rede de baixo nível; embora um problema de conexão possa causá-la,DriverManager.getConnection()a encapsula e lança umaSQLException. - (E) Incorreta:
DriverExceptioneDatabaseExceptionnão são classes de exceção padrão do Java SE que seriam lançadas diretamente por essas linhas de código.
Fonte: FCC TRT20 2024 Analista Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 003). Reproduzida para fins de estudo.