Learn C# Help

A Estrutura try-catch

O bloco try-catch é o pilar do tratamento de exceções em C#. Ele nos permite isolar um código que pode falhar e definir um plano de ação para quando a falha de fato ocorrer.

O funcionamento é direto:

  • try: O código que pode potencialmente lançar uma exceção é colocado aqui. O programa tenta executá-lo normalmente.

  • catch: Se, e somente se, uma exceção ocorrer no bloco try, a execução normal é interrompida e o controle pula imediatamente para o bloco catch. É o nosso "plano de contingência".

try { // Code that might cause an exception is placed here. // For example, attempting to divide by zero. int numerator = 10; int denominator = 0; int result = numerator / denominator; // This line will throw a DivideByZeroException. // This line will never be reached because the exception occurs before it. Console.WriteLine("Calculation successful!"); } catch { // If the code in the try block fails, this code is executed. Console.WriteLine("An error occurred during the calculation."); }

Capturando Detalhes da Exceção

Na maioria das vezes, apenas saber que um erro ocorreu não é suficiente. Precisamos de detalhes: o que deu errado? Onde?

Para isso, podemos capturar a exceção em um objeto dentro do bloco catch. Esse objeto, geralmente chamado de ex por convenção, contém informações valiosas para depuração.

As propriedades mais usadas são:

  • ex.Message: Uma string que descreve o erro.

  • ex.StackTrace: Um "rastro" de texto que mostra exatamente em qual método o erro ocorreu e a sequência de chamadas que levou até ele.

try { int numerator = 10; int denominator = 0; int result = numerator / denominator; } catch (Exception ex) { // We catch the Exception object to get more details. Console.WriteLine("An exception was caught!"); Console.WriteLine($"Error Message: {ex.Message}"); // The StackTrace is very useful for debugging but can be long. // Console.WriteLine($"Stack Trace: {ex.StackTrace}"); }

Nota Importante sobre o Escopo

25 August 2025