专业分享编程教程与技术文档

网站首页 > 文章教程 正文

流程控制-TryCatch语句(5-9)-C#编程零基础到入门学习

nandi16 2024-11-10 10:03:15 文章教程 12 ℃ 0 评论

在C#中,try-catch语句用于捕获和处理异常。当在try块中发生异常时,程序将跳转到相应的catch块,以执行相应的异常处理逻辑。

基本语法

try  
{  
    // 可能会引发异常的代码块  
}  
catch (ExceptionType1 ex)  
{  
    // 处理ExceptionType1类型的异常  
}  
catch (ExceptionType2 ex)  
{  
    // 处理ExceptionType2类型的异常  
}  
catch (Exception ex)  
{  
    // 处理其他类型的异常  
}  
finally  
{  
    // 可选的finally块,无论是否发生异常都会执行  
}

try块中,可以编写可能会引发异常的代码。

如果在try块中发生了异常,程序将查找匹配的catch块来处理异常。如果没有找到匹配的catch块,则程序将终止。

catch块用于处理特定类型的异常。

可以根据需要指定多个catch块来处理不同类型的异常。在catch块中,可以编写处理异常的逻辑,如记录错误信息、回滚事务等。

finally块是可选的,无论是否发生异常,其中的代码都会执行。

通常,你可以在finally块中编写清理代码,如关闭文件、释放资源等。

完整代码示例1:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TryCatch1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            try
            {
                int result = 10 / 0; // 引发除以零的异常  
            }
            catch (DivideByZeroException ex)
            {
                Console.WriteLine("发生了除以零的异常: " + ex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("发生了其他异常: " + ex.Message);
            }
            finally
            {
                Console.WriteLine("清理代码执行了。");
            }
        }
    }
}


在上面的示例中,try块中的代码引发了除以零的异常。

程序将跳转到匹配的catch块,打印错误消息。

最后,finally块中的代码将执行,打印"清理代码执行了。"。

完整示例代码2:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TryCatch2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // 可能会引发异常的代码块  
                int result = 10 / 0; // 引发除以零的异常  
            }
            catch (DivideByZeroException ex) // 捕获除以零的异常  
            {
                Console.WriteLine("发生了除以零的异常: " + ex.Message);
            }
            catch (NullReferenceException ex) // 捕获空引用异常  
            {
                Console.WriteLine("发生了空引用异常: " + ex.Message);
            }
            catch (Exception ex) // 捕获其他类型的异常  
            {
                Console.WriteLine("发生了其他异常: " + ex.Message);
            }
            finally
            {
                // 可选的finally块,无论是否发生异常都会执行  
                Console.WriteLine("清理代码执行了。");
            }
        }
    }
}

看到有疑问说 try... catch语句属于流程控制么?

在C#中,try-catch语句属于流程控制的一种。这是因为它允许改变或中断正常的程序执行流程,以便处理可能发生的错误或异常。

当使用try-catch语句时,实际上是在告诉编译器:“尝试执行这段代码,如果发生任何异常,则跳转到相应的catch块处理”。这是一种控制程序执行流程的方式,因为你在决定哪些错误应被捕获并如何处理它们。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表