Publicado em

Exceções em C#

Partilhar:

Introdução

Ao programar, muitas vezes nos deparamos com situações inesperadas que podem interromper a execução normal do nosso código. Estas interrupções são comumente referidas como exceções. Em C#, a manipulação de exceções é fundamental para criar software resiliente e robusto.

O que são Exceções?

Uma exceção em C# é um evento que surge quando ocorre uma condição anormal durante a execução do programa. Representa, na prática, um erro que pode ser devido a várias causas, como falhas de IO, erros lógicos, ou problemas de acesso a recursos.

Como Manipular Exceções

Blocos try-catch

O bloco try contém instruções que podem causar uma exceção, enquanto o bloco catch contém o código que é executado em resposta a uma exceção.

Bloco finally

O bloco finally é sempre executado após a execução dos blocos try e catch, independentemente de ter ocorrido uma exceção ou não. É normalmente utilizado para limpeza, como fechar conexões ou ficheiros.

using System;

namespace Base {
  class Excecoes {
    public void Run() {
      int[] numeros = new int[5] {
        1, 2, 3, 4, 5
      };

      try {
        Console.WriteLine($"Conteúdo do elemento: {numeros[4]}");
      }
      catch (Exception excecao) {
        Console.WriteLine("Ocorreu uma exceção!");
        Console.WriteLine(excecao);
      }
      finally {
        Console.WriteLine("O bloco finally é sempre executado.");
      }
    }
  }
}

Exceções Comuns em C#

  • NullReferenceException: Lançada quando se tenta acessar um membro de um objeto nulo.
  • IndexOutOfRangeException: Ocorre ao tentar acessar um índice fora dos limites de uma matriz.
  • InvalidCastException: Surge ao tentar converter um tipo em outro incompatível.

Conclusão

Entender e manipular corretamente exceções em C# é essencial para criar aplicações confiáveis e robustas. Ao adotar práticas adequadas de tratamento de exceções, garantimos que nossos programas possam lidar com erros de forma graciosa e informar o utilizador de forma adequada.

Happy coding!