Questão FC373246
Considere a classe Java a seguir em condições ideais. import java.sql.*; public class ClienteDados { public int conectar(){ Class.forName("com.mysql.jdbc.Driver"); Connection con =
Linguagens de Programação
FCC · 2019
Considere a classe Java a seguir em condições ideais.
import java.sql.*;
public class ClienteDados {
public int conectar(){
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection
("jdbc:mysql://localhost:3306/banco", "root", "");
Statement st = con.createStatement();
return 1;
}
}
No método conectar podem ser lançadas duas exceções que o Analista de Informática deseja que sejam tratadas não no interior do método, mas sim por quem o chamar. Para que isso seja permitido, deve-se inserir o comando
- try na linha abaixo da declaração do método e catch (DataBaseException, SQLQueryException) abaixo do comando return 1.
- throws ClassNotFoundException, SQLException na linha de declaração do método.
- Exception ClassNotFoundException, SQLException na linha de declaração do método.
- try na linha abaixo da declaração do método e catch (ClassNotFoundException, SQLException) abaixo do comando return 1.
- throws DataBaseException, SQLQueryException na linha de declaração do método.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
No corpo do método conectar há chamadas que podem lançar ClassNotFoundException (de Class.forName) e SQLException (de DriverManager.getConnection e createStatement). Ambas são exceções checked, ou seja, o compilador exige que sejam tratadas ou declaradas.
Para transferir a responsabilidade de tratamento ao chamador, deve-se incluir na declaração do método a cláusula throws seguida das exceções:
public int conectar() throws ClassNotFoundException, SQLException.
Essa sintaxe informa ao compilador e aos usuários do método que, se ocorrer uma dessas exceções, ela será propagada para quem invocar conectar, que então deverá tratá‑la (try/catch) ou declará‑la também.
Conteúdo do catálogo FC Concursos · Atualizado em