1
resposta

Desafio concluído!

Segunda atividade:

package br.com.alura.desafioPratico03.principal;
import br.com.alura.desafioPratico03.exececao.SenhaInvalidaException;
import br.com.alura.desafioPratico03.modelo.Usuario;
import java.util.Scanner;

public class PrincipalComUsuarios {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("Digite o nome do usuário: ");
        String nome = in.nextLine();
        String senha = "";
        Usuario usuario = null;
        try {
            System.out.print("Digite sua senha: ");
            senha = in.nextLine();
            usuario = new Usuario(nome, senha);
        } catch (SenhaInvalidaException e) {
            System.out.println("Aconteceu um erro");
            System.out.println(e.getMensagem());
        }
        System.out.println();
        if (usuario != null) {
            try {
                System.out.println("Confirme a sua senha: ");
                String confirmacaoDeSenha = in.nextLine();
                System.out.println(usuario.ConferirSenha(confirmacaoDeSenha));
            } catch (SenhaInvalidaException e) {
                System.out.println("Aconteceu um erro");
                System.out.println(e.getMensagem());
            } finally {
                System.out.println("Operação concluída");
            }
        }
    }
}
package br.com.alura.desafioPratico03.exececao;
public class SenhaInvalidaException extends RuntimeException {

    private String mensagem;
    public SenhaInvalidaException(String message) {
        this.mensagem = message;
    }
    public String getMensagem() {
        return this.mensagem;
    }
}
package br.com.alura.desafioPratico03.modelo;
import br.com.alura.desafioPratico03.exececao.SenhaInvalidaException;

public class Usuario {
    private String usuario;
    private String senha;
    public Usuario(String usuario, String senha) {
        this.usuario = usuario;
            if (senha.length() > 8) {
                throw new SenhaInvalidaException("A senha não pode ter mais de 8 caracteres");
            }
        this.senha = senha;
    }
    public String ConferirSenha(String senha) {
        if (!this.senha.equals(senha)) {
            throw new SenhaInvalidaException("Senha incorreta");
        } else {
            return "Senha confirmada";
        }
    }
}

Terceira atividade:

package br.com.alura.desafioPratico03.principal;
import br.com.alura.desafioPratico03.exececao.ErroConsultaGitHubException;
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.Scanner;

public class PrincipalBuscaComGit {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        try {
            System.out.print("Digite o seu nome: ");
            String nome = in.nextLine();
            HttpClient client = HttpClient.newHttpClient();
            HttpRequest request = HttpRequest.newBuilder()
                    .uri(URI.create("https://api.github.com/users/" + nome))
                    .build();
            HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
            if (response.statusCode() == 404) {
                throw new ErroConsultaGitHubException("Usuário não encontrado!");
            } else {
                System.out.println(response.body());
            }
        } catch (ErroConsultaGitHubException e) {
            System.out.println(e.getMensagem());
        } catch (IOException | InterruptedException e) {
            System.out.println("Erro na requisição: " + e.getMessage());
        }
        finally {
            System.out.println("Operação concluída");
        }
    }
}
package br.com.alura.desafioPratico03.exececao;
public class ErroConsultaGitHubException extends RuntimeException {
    private String mensagem;
    public ErroConsultaGitHubException(String message) {
        this.mensagem = message;
    }
    public String getMensagem() {
        return mensagem;
    }
}
1 resposta

Oi, Bernardo! Como vai?

Agradeço por compartilhar.

Gostei da forma como você organizou o desafio, usando exceções personalizadas para tratar senha inválida e usuário não encontrado no GitHub. Esse cuidado deixa o código mais claro e facilita a manutenção, já que cada erro tem uma mensagem própria e bem direcionada.

Você fez um bom uso do try/catch/finally e também validou o statusCode() da resposta da API antes de exibir o conteúdo. Dica: no Java, métodos costumam começar com letra minúscula, então ConferirSenha poderia ser conferirSenha, mantendo o padrão de nomenclatura da linguagem. Continue praticando esse tipo de validação, porque ela ajuda muito na criação de aplicações mais seguras e organizadas.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!