在 C# 中捕获多个异常

Muhammad Maisam Abbas 2023年10月12日
  1. 使用 C# 中的 Exception 类捕获多个异常
  2. 使用 C# 中的 if 语句捕获多个异常
在 C# 中捕获多个异常

本教程将讨论在 C# 中捕获多个异常的方法。

使用 C# 中的 Exception 类捕获多个异常

Exception 类用于表示 C# 中的一般异常。我们可以在 try...catch 子句中使用 Exception 类来捕获代码抛出的任何类型的异常。请参见以下示例代码。

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

输出:

True

在上面的代码中,我们使用 C# 中的 Exception 类来捕获代码抛出的任何类型的异常。通常不建议使用此方法,因为它不能为我们提供足够的有关问题以及如何解决问题的信息。我们应该始终偏向于特定的异常类型,而不是这种通用的异常类型。

使用 C# 中的 if 语句捕获多个异常

使用特定的异常要求我们以 catch 子句的形式编写大量代码。在 C# 中,我们可以使用 if 语句只用一个 catch 子句来捕获多种类型的异常。请参见以下示例代码。

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

输出:

True

在上面的代码中,我们使用 C# 中的 if 语句通过一个 catch 子句来捕获 FormatExceptionOverflowException 异常。

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

相关文章 - Csharp Exception