Usando a função try-catch em C#

11 de março de 2024

Em qualquer linguagem de programação, lidar e tratar as exceções de forma eficiente é essencial e faz parte das boas práticas de programação para garantir a estabilidade e a confiabilidade das aplicações. A linguagem C# não fica fora dessa e possui maneiras de tratar essas exceções. Uma das ferramentas mais importantes para isso é a estrutura try-catch.

Neste artigo vamos nos aprofundar no funcionamento e os diversos usos da função try-catch.

Funcionamento da função try-catch

A estrutura do try-catch é utilizada para tratar exceções durante a execução do código. O código onde uma exceção pode ocorrer deverá ser colocado em um bloco try. Se uma exceção ocorrer durante a execução desse bloco de código, ela pode ser tratada no bloco catch, evitando que o programa termine de forma inesperada.

Sintaxe

A sintaxe básica da função try-catch é a seguinte:

try
{
    var result = Process(-3, 4);
    Console.WriteLine($"Processing succeeded: {result}");
}
catch (ArgumentException e)
{
    Console.WriteLine($"Processing failed: {e.Message}");
}

Você pode fornecer várias cláusulas catch:

try
{
    var result = await ProcessAsync(-3, 4, cancellationToken);
    Console.WriteLine($"Processing succeeded: {result}");
}
catch (ArgumentException e)
{
    Console.WriteLine($"Processing failed: {e.Message}");
}
catch (OperationCanceledException)
{
    Console.WriteLine("Processing is cancelled.");
}

Se houver alguma exceção, os blocos catch serão examinados em ordem, de cima para baixo. E no máximo um bloco catch é executado para cada exceção. Se você não quiser tratar uma exceção específica, você pode omitir a declaração de uma variável de exceção e especificar apenas o tipo de exceção, como usamos no exemplo acima (ArgumentException e). Uma bloco catch sem qualquer variável de exceção especificado corresponde a qualquer exceção e quando for utilizado, deve ser o último bloco catch, senão qualquer exceção presente irá cair diretamente nele, não passando pelas outras específicas.

Sintaxe fornecida pela documentação oficial da Microsoft e pode ser encontrada clicando aqui.


Exemplos práticos da aplicação da função try-catch:

Tratando uma exceção específica

try
{
    int divisor = 0;
    int resultado = 10 / divisor; // Divisão por zero, lançará uma exceção
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Erro: Tentativa de divisão por zero.");
}

Tratando uma exceção genérica

try
{
    // Código
}
catch (Exception ex)
{
    Console.WriteLine($"Erro: {ex.Message}");
}

O uso do bloco finally

Dentro da função try-catch temos também o bloco finally, utilizamos este bloco para especificar um bloco de código que é executado independentemente de ocorrer uma exceção dentro do bloco try ou não.

Sintaxe

try
{
    // Código
}
catch (ExcecaoTipo1 ex)
{
    // Tratamento para exceções do tipo ExcecaoTipo1
}
finally
{
    // Bloco opcional que é executado independentemente de exceções ocorrerem ou não
}

Conclusão

Em resumo, a função try-catch é uma ferramenta essencial para lidarmos com as exceções de forma eficiente durante a execução do código. Ao utilizar essa estrutura, os desenvolvedores podem prever e tratar exceções que possam ocorrer, garantindo que suas aplicações funcionem de forma correta, colaborando para o desenvolvimento de software de qualidade.

Verifique a documentação completa da Microsoft clicando aqui.