在本模块中,您将获得有关异常、处理异常的过程以及 C# 支持的不同异常处理模式的知识。
在 C# 中,异常处理是通过使用 try、catch 和 finally 关键字来实现的。这些关键字中的每一个都与不同的代码块相关联,并在管理异常时具有特定目的。
首先,在控制台应用程序中创建一个名为“”的静态类文件。将提供的代码片段插入到此文件中。ExceptionHandling.cs
public static class ExceptionHandling
{
/// <summary>
/// Outputs
/// Hello from try block
/// Hello from exception block
/// Hello from finally block
/// </summary>
public static void SimpleExceptionBlock()
{
try
{
// try code block - code that may generate an exception
Console.WriteLine("Hello from try block");
throw new NotImplementedException();
}
catch
{
// catch code block - code to handle an exception
Console.WriteLine("Hello from exception block");
}
finally
{
// finally code block - code to clean up resources
Console.WriteLine("Hello from finally block");
}
}
}
从 main 方法执行代码,如下所示
#region Day 8 - Exception Handling
ExceptionHandling.SimpleExceptionBlock();
#endregion
Hello from try block
Hello from exception block
Hello from finally block
将另一个方法添加到同一个静态类中,如下所示
/// <summary>
/// Outputs
/// Hello from try block
/// Hello from inner finally block
/// Hello from exception block
/// Hello from outer finally block
/// </summary>
public static void NestedExceptionBlock()
{
try
{
// Step 1: code execution begins
try
{
// Step 2: an exception occurs here
Console.WriteLine("Hello from try block");
throw new NotImplementedException();
}
finally
{
// Step 4: the system executes the finally code block associated with the try statement where the exception occurred
Console.WriteLine("Hello from inner finally block");
}
}
catch // Step 3: the system finds a catch clause that can handle the exception
{
// Step 5: the system transfers control to the first line of the catch code block
Console.WriteLine("Hello from exception block");
}
finally
{
Console.WriteLine("Hello from outer finally block");
}
}
在此方案中,将展开以下事件序列:
从 main 方法执行代码,如下所示
#region Day 8 - Exception Handling
ExceptionHandling.NestedExceptionBlock();
#endregion
Hello from try block
Hello from inner finally block
Hello from exception block
Hello from outer finally block
源代码获取:公众号回复消息【code:86760
】