Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

{Resolução] Desafio: hora da prática

  1. Escrever um programa que faça uma requisição para a API de games CheapShark e mostre na tela a lista de promoções cadastrada na ferramenta (Você pode utilizar o endpoint:https://www.cheapshark.com/api/1.0/deals).
try
{
    using HttpClient client = new();
    var resposta = await client.GetStringAsync("https://www.cheapshark.com/api/1.0/deals");
    Console.WriteLine(resposta);
}
catch (Exception ex)
{
    Console.WriteLine("Erro>>>  " + ex.Message);
}
  1. Escrever um programa que solicite dois números a e b lidos do teclado e realize a divisão de a por b. Caso essa operação não seja possível, mostrar uma mensagem no console que deixe claro o erro ocorrido.
try
{
    Console.Write("Valor de A: ");
    int n1 = int.Parse(Console.ReadLine()!);
    Console.Write("Valor de B: ");
    int n2 = int.Parse(Console.ReadLine()!);

    Console.WriteLine($"{n1} / {n2} = {n1/n2}");
}
catch (FormatException ex)
{
    Console.WriteLine($"Você digitou um valor inválido ->" + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Impossível dividir por 0 -> " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine(ex);
}
  1. Declarar uma lista de inteiros e tente acessar um elemento em um índice inexistente. Tratar a exceção apropriada.
try
{
    List<int> interiros = [ 7, 3, 9, 8, 6 ];
    Console.WriteLine("Valor: " + interiros[5]);
}
catch (ArgumentOutOfRangeException ex)
{
    Console.WriteLine("Indice maior que o tamanho da lista -> " + ex.Message);
}
  1. Criar uma classe simples com um método e chame esse método em um objeto nulo. Tratar a exceção de método em objeto nulo.
    Veiculo.cs
internal class Veiculo
{
    public void LigarVeiculo()
    {
        Console.WriteLine("Ligando veículo...");
    }
}

Program.cs

try
{
    Veiculo veiculo = null!;
    veiculo.LigarVeiculo();
}
catch (NullReferenceException ex)
{
    Console.WriteLine("Referência nula -> " + ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("Erro inesperado -> " + ex.Message);
}
1 resposta
solução!

Oi, Gerson! Como vai?

Você aplicou bem o try/catch em cenários diferentes (API com HttpClient, divisão, índice fora da lista e referência nula), escolhendo exceções bem específicas como FormatException e DivideByZeroException, isso deixa o comportamento do programa bem previsível.

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