📜  C#异常处理(1)

📅  最后修改于: 2023-12-03 15:14:32.869000             🧑  作者: Mango

C# 异常处理

在程序开发中,当程序出现错误或异常时,我们需要对其进行相应的处理。C# 提供了一种异常处理机制来处理这种情况。

异常概述

异常是程序运行时的一种错误状态,会导致程序出现错误或异常行为。在 C# 中,异常是由系统或应用程序发出的错误信号。当发生异常时,程序会抛出一个异常对象。这个异常对象包含有关错误的详细信息,例如异常类型、堆栈跟踪和消息。

异常类型

在 C# 中,异常分为以下几种类型:

  • System.Exception:所有异常的基类。
  • System.ApplicationException:所有应用程序特定异常的基类。
  • System.SystemException:所有 .NET Framework 异常的基类。
  • System.IndexOutOfRangeException:当数组索引超出范围时引发的异常。
  • System.NullReferenceException:当引用的对象为 Null 时引发的异常。
  • System.InvalidCastException:类型转换期间发生的异常。
  • System.ArgumentException:参数错误时引发的异常。
异常处理

异常处理是我们在编码过程中必须考虑的重要问题。C# 提供了一种机制来捕获和处理异常,这种机制称为“异常处理机制”。

try-catch 语句

使用 try-catch 语句可以捕获和处理异常。下面是一个示例:

try
{
    // 尝试执行可能引发异常的代码
}
catch (Exception ex)
{
    // 处理异常
}

上述代码中,try 块包含可能引发异常的代码,当代码出现异常时,程序会跳转到 catch 块。在 catch 块中,我们可以对异常进行捕获和处理。

finally 块

finally 块用于在 try-catch 语句结束时执行一些操作,无论异常是否被捕获。下面是一个示例:

try
{
    // 尝试执行可能引发异常的代码
}
catch (Exception ex)
{
    // 处理异常
}
finally
{
    // 在 try-catch 语句结束时执行一些操作
}
throw 语句

throw 语句用于在代码中手动引发异常。下面是一个示例:

if (someConditionIsTrue)
{
    throw new Exception("异常信息");
}

上述代码中,如果 someConditionIsTrue 为 True,则会抛出一个名为 “异常信息” 的异常。

自定义异常

我们也可以自定义异常类来处理特定的异常情况。下面是一个示例:

public class MyException : Exception
{
    public MyException(string message) : base(message)
    {
    }
}

try
{
    if (someConditionIsTrue)
    {
        throw new MyException("自定义异常信息");
    }
}
catch (MyException ex)
{
    Console.WriteLine(ex.Message);
}

上述代码中,我们定义了一个名为 MyException 的自定义异常,当 someConditionIsTrue 为 True 时,会抛出一个 MyException 异常。在 catch 块中,我们可以对 MyException 异常进行捕获和处理。

总结

C# 提供了丰富的异常处理机制来处理程序中出现的异常。学习和掌握异常处理机制是每一个 C# 程序员必须掌握的技能。