top of page

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}");
    }
}

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](https://github.com/Develop4Us-Company/DevTips/tree/master/Portugues/CSharp/AvoidExceptionsForFlow)

0 visualização

Posts recentes

Ver tudo

Dica C#: Default Interface Methods

Vamos falar sobre uma novidade do C# 12: Default Interface Methods. Esse recurso permite que interfaces contenham implementações de...

Dica C#: Global Using Directives

Vamos para uma dica do C# 10: Global Using Directives. Com essa funcionalidade, você pode definir diretivas using globais que se aplicam...

bottom of page