网站首页 > 文章教程 正文
在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块处理”。这是一种控制程序执行流程的方式,因为你在决定哪些错误应被捕获并如何处理它们。
猜你喜欢
- 2024-11-10 多重 Catch 块(多个catch块只会执行一个)
- 2024-11-10 Java线程的概念,各种状态以及使用方式
- 2024-11-10 老版本iWatch 升级到 watchOS9.2,建议别用Betas啦
- 2024-11-10 vue在html中结合axios时,this指向为undefined解决办法
- 2024-11-10 catch 相关的短语动词(关于catch的短语词组)
- 2024-11-10 情人节脱单秘诀,程序员表白的情话大盘点!| CSDN 博文精选
- 2024-11-10 关于catch的短语,你知道多少?(关于catch的短语词组)
- 2024-11-10 38.JavaScript:try...catch异常处理
- 2024-11-10 天呐,你竟然还在用 try–catch-finally
- 2024-11-10 基于MySql数据库+Express的API接口服务(含服务器部署)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ios5.1.1下载 (61)
- 组态王图库下载 (72)
- eclipse3.7下载 (60)
- win7蓝牙5.0驱动 (68)
- win7nvme补丁 (63)
- typora哪个版本不收费 (69)
- javaapi中文文档下载 (61)
- directxrepairv3.8 (66)
- 代码随想录pdf (83)
- 125编辑器 (64)
- lambdawrapper (76)
- linuxjdk1.8安装教程 (82)
- 威纶通触摸屏官网下载 (62)
- netframework4.7.2 (63)
- icmp报文格式 (69)
- spire.presentation (79)
- burpsuite中文版 (63)
- 网页批量打开 (64)
- android源码在线 (63)
- cad图框模板免费下载 (62)
- sqlserver连接工具 (63)
- 文库下载工具 (67)
- mat内存分析工具 (67)
- ug自动出图软件 (62)
- fidder下载 (61)
本文暂时没有评论,来添加一个吧(●'◡'●)