DEV Community

Juarez Júnior for Develop4Us

Posted on • Edited on

Dica C#: Evite Exceções para Controle de Fluxo

Vamos falar sobre a prática de Evitar Exceções para Controle de Fluxo, que ajuda a manter o código mais eficiente e evita sobrecarregar o sistema com exceções desnecessárias.

Explicação:

No C#, exceções são projetadas para lidar com situações inesperadas e erros. Utilizar exceções para controlar o fluxo do programa (por exemplo, como alternativa a if ou switch) é considerado uma má prática, pois lançá-las e capturá-las consome muitos recursos do sistema, tornando o código menos eficiente. Em vez disso, prefira usar estruturas condicionais (if, else, switch) para verificar condições e manter o controle de fluxo de maneira eficiente.

Essa prática é especialmente importante em cenários críticos de performance, como loops ou métodos chamados com frequência, onde exceções desnecessárias podem impactar o desempenho.

Código:

public class Calculadora
{
    public double Dividir(double numerador, double denominador)
    {
        if (denominador == 0)
        {
            Console.WriteLine("Divisão por zero não é permitida.");
            return double.NaN; // Retorna um valor indicativo em vez de lançar exceção
        }

        return numerador / denominador;
    }
}

public class Program
{
    public static void Main()
    {
        Calculadora calculadora = new Calculadora();
        double resultado = calculadora.Dividir(10, 0);
        Console.WriteLine($"Resultado: {resultado}");
    }
}
Enter fullscreen mode Exit fullscreen mode

Explicação do Código:

No exemplo, verificamos a condição de um número antes de tentar dividi-lo, evitando uma possível divisão por zero. Em vez de lançar uma exceção para lidar com essa situação, usamos uma verificação condicional, garantindo que o fluxo do programa permaneça controlado e eficiente.

Evitar exceções para controle de fluxo mantém o código mais eficiente e evita sobrecarga desnecessária. Essa prática é essencial para melhorar o desempenho, especialmente em cenários onde o fluxo de controle é chamado com frequência.

Espero que essa dica ajude você a usar exceções de maneira adequada, reservando-as apenas para erros inesperados! Até a próxima.

Código fonte: GitHub

Top comments (0)