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

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay