在 C# 中捕获多个异常

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  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