SonarLint Report

Boa noite pessoal.

Estou com um projeto em jsp onde tenho que fazer um CRUD, e estou usando o padrão MVC e na minha classe DAO no método que faz a conexão com o banco estou tomando um report do sonar lint na variável con do tipo Connection, ela começa como null e por isso o sonar acusa um erro, como eu resolvo isso?

private Connection connect() {
		Connection con = null;
		try {
			Class.forName(driver);
			con = DriverManager.getConnection(url, user, password);
		} catch (ClassNotFoundException | SQLException | NullPointerException e) {
			logger.log(Level.WARNING, e.toString(), e);
		}
		return con;
	}

Segue acusação do sonar:




image

Podem me ajudar por favor?

Poderia lançar uma exception quando não conseguir estabelecer uma conexão corretamente!

Exemplo:

private Connection connect() {
    try {
        Class.forName(driver);
        return DriverManager.getConnection(url, user, password);
    } catch (ClassNotFoundException | SQLException | NullPointerException e) {
        logger.log(Level.WARNING, e.toString(), e);
        throw new RuntimeException("Não foi possível estabelecer a conexão com o banco de dados", e);
    }
}

Outra abordagem seria retornar um Optional<Connection> no método connect e quem chama o método fazer uma tratativa para saber se existe ou não uma conexão válida.

1 curtida

Deu certo Jonathan, muito obrigado