Cattura più eccezioni in C#

Muhammad Maisam Abbas 12 ottobre 2023
  1. Cattura più eccezioni con la classe Exception in C#
  2. Cattura più eccezioni con l’istruzione if in C#
Cattura più eccezioni in C#

Questa esercitazione discuterà i metodi per rilevare più eccezioni in C#.

Cattura più eccezioni con la classe Exception in C#

La classe Exception viene utilizzata per rappresentare un’eccezione generale in C#. Possiamo usare la classe Exception all’interno della clausola try...catch per catturare qualsiasi tipo di eccezione lanciata dal codice. Vedere il seguente codice di esempio.

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

Produzione:

True

Nel codice precedente, catturiamo qualsiasi tipo di eccezione generata dal nostro codice con la classe Exception in C#. Questo approccio è generalmente sconsigliato perché non fornisce informazioni sufficienti sul problema e su come risolverlo. Dovremmo sempre preferire tipi di eccezione specifici piuttosto che questo generico.

Cattura più eccezioni con l’istruzione if in C#

L’uso di eccezioni specifiche richiede di scrivere molto codice sotto forma di clausole catch. Possiamo usare l’istruzione if per catturare più tipi di eccezioni con una sola clausola catch in C#. Vedere il seguente codice di esempio.

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

Produzione:

True

Nel codice precedente, catturiamo entrambe le eccezioni FormatException e OverflowException con una sola clausola catch utilizzando un’istruzione if in 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