C# 中的异常处理是使用 try-catch-finally 语句实现的。
try 块包含可能抛出异常的代码。如果在 try 块中发生异常,则会创建异常对象,并将其传递给相应的 catch 块。
catch 块用于处理 try 块中的异常。您可以捕获特定类型的异常,并使用它来处理异常。
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# 中的异常处理的一些常用技巧。希望这些信息对您有所帮助!
2016 © donet5.comApache Licence 2.0