Sobes.tech
Junior

O que é o operador throw em C#?

sobes.tech IA

Resposta da IA

O operador throw é utilizado para lançar explicitamente uma exceção. Permite interromper a execução normal do programa e transferir o controlo para o bloco de tratamento de exceções.

// Exemplo de uso do operador throw
try
{
    int[] numbers = { 1, 2, 3 };
    int index = 5;

    // Lançar manualmente uma exceção IndexOutOfRangeException
    if (index >= numbers.Length)
    {
        throw new IndexOutOfRangeException("O índice está fora do intervalo do array.");
    }

    Console.WriteLine(numbers[index]);
}
catch (IndexOutOfRangeException ex)
{
    // Tratamento da exceção
    Console.WriteLine($"Erro: {ex.Message}");
}

O operador throw pode ser usado de duas formas:

  1. throw expression;: Lança uma nova exceção, onde expression é uma instância de uma classe que herda de System.Exception.

    throw new ArgumentException("Argumento inválido.");
    
  2. throw;: Re-aciona a exceção atual no bloco catch. Isto mantém toda a informação da pilha de chamadas da exceção original.

    try
    {
        // Código que pode lançar uma exceção
    }
    catch (FileNotFoundException ex)
    {
        // Tratamento adicional ou registo
        Console.WriteLine($"Ficheiro não encontrado: {ex.FileName}");
    
        // Re-lançar a exceção para tratamento posterior na pilha
        throw;
    }
    

O uso de throw é importante para:

  • Indicar erros ou situações inesperadas na aplicação.
  • Criar exceções personalizadas para erros específicos.
  • Transmitir informações do erro ao código que chama para um tratamento adequado.