Capture Múltiplas Exceções em C#

Muhammad Maisam Abbas 12 outubro 2023
  1. Capture Múltiplas Exceções com a Classe Exception em C#
  2. Capture múltiplas exceções com a instrução if em C#
Capture Múltiplas Exceções em C#

Este tutorial discutirá os métodos para capturar várias exceções em C#.

Capture Múltiplas Exceções com a Classe Exception em C#

A classe Exception é usada para representar uma exceção geral em C#. Podemos usar a classe Exception dentro da cláusula try...catch para capturar qualquer tipo de exceção lançada pelo código. Veja o seguinte código de exemplo.

using System;

namespace convert_int_to_bool {
  class Program {
    static void Main(string[] args) {
      try {
        int i = 1;
        bool b = Convert.ToBoolean(i);
        Console.WriteLine(b);
      } catch (Exception e) {
        Console.WriteLine("An Exception Occured");
      }
    }
  }
}

Resultado:

True

No código acima, capturamos qualquer tipo de exceção lançada por nosso código com a classe Exception em C#. Essa abordagem geralmente é desencorajada porque não nos fornece informações suficientes sobre o problema e como solucioná-lo. Devemos sempre preferir tipos de exceção específicos em vez deste genérico.

Capture múltiplas exceções com a instrução if em C#

O uso de exceções específicas exige que escrevamos muitos códigos na forma de cláusulas catch. Podemos usar a instrução if para capturar vários tipos de exceções com apenas uma cláusula catch em C#. Veja o seguinte código de exemplo.

using System;

namespace convert_int_to_bool {
  class Program {
    static void Main(string[] args) {
      try {
        int i = 1;
        bool b = Convert.ToBoolean(i);
        Console.WriteLine(b);
      } catch (Exception e) {
        if (ex is FormatException || ex is OverflowException) {
          Console.WriteLine("Format or Overflow Exception occured");
        }
      }
    }
  }
}

Resultado:

True

No código acima, capturamos as exceções FormatException e OverflowException com apenas uma cláusula catch usando uma instrução if em C#.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn