C#异常处理入门

C# 中的异常处理是使用 try-catch-finally 语句实现的。


Try

try 块包含可能抛出异常的代码。如果在 try 块中发生异常,则会创建异常对象,并将其传递给相应的 catch 块。


Catch

catch 块用于处理 try 块中的异常。您可以捕获特定类型的异常,并使用它来处理异常。


finally 

finally 块包含在异常发生或不发生时都需要执行的代码。


以下是一个简单的 C# 异常处理示例:

try
{
    int x = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("FormatException caught: {0}", ex.Message);
}
catch (Exception ex)
{
    Console.WriteLine("Exception caught: {0}", ex.Message);
}
finally
{
    Console.WriteLine("Finally block executed.");
}

在这个示例中,try 块中的代码将字符串 "abc" 解析为整数。由于 "abc" 不是整数,因此会引发 FormatException。该异常被相应的 catch 块捕获,并输出其相关信息。最后,finally 块中的代码始终会执行。


异常常用技巧 

除了 try-catch-finally 语句以外,C# 还提供了一些其他的异常处理技巧。

throw 语句:您可以使用 throw 语句显式抛出异常。例如:

if (x < 0)
{
    throw new ArgumentException("x cannot be negative.");
}

using 语句:使用 using 语句确保对象的正确使用和释放。例如:

using (FileStream fs = new FileStream("file.txt", FileMode.Open))
{
    // Use the FileStream object.
}

在该代码块结束时,FileStream 对象将自动释放。

自定义异常:您可以创建自己的异常类,以便更精确地表示特定类型的异常。例如:

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

您可以使用该类抛出异常:

if (x < 0)
{
    throw new MyException("x cannot be negative.");
}

这些都是 C# 中的异常处理的一些常用技巧。希望这些信息对您有所帮助!


果糖网