C# 异常处理


前言

  异常处理机制为开发者提供了一种有效的方式,能够将程序的控制权从出现问题的部分合理地转移到其他部分,确保程序在遇到意外情况时依然能够保持相对稳定的运行状态,或者至少能够以一种可控的方式终止并给出相应提示。
  C# 的异常处理建立在四个至关重要的关键词之上,它们分别是 try、catch、finally 和 throw,各自承担着不同且关键的职责,共同构建起了完善的异常处理体系。]
在这里插入图片描述

一、核心关键词解析

(一)try 关键字

  try 块就像是一个特殊的 “保护区”,它标识出了一段可能会引发异常的代码块,后续会紧跟一个或多个 catch 块与之配合使用。在这个被 try 包裹的代码区域内执行的语句,就是我们所认为的受保护的代码,一旦其中的语句执行出现异常情况,程序就会立即跳转到对应的 catch 块去尝试进行异常处理。例如:

try
{
   
    // 这里放置可能会引起异常的语句,比如进行一些外部资源读取、复杂运算等操作
    int[] array = new int[5];
    Console.WriteLine(array[10]); // 此处访问超出数组范围,会引发异常
}
catch( ExceptionName e1 )
{
   
    // 错误处理代码,当上述代码出现对应异常时,会执行此处代码来处理异常情况
}

(二)catch 关键字

  程序通过异常处理程序来捕获异常,而 catch 关键字就是用于表示异常捕获的关键标识。开发者可以根据可能出现的不同类型的异常,列出多个 catch 语句来分别捕获它们,以此应对 try 块在不同情况下生成的多种异常情况。例如:

try
{
   
    // 引起异常的语句,比如尝试进行类型不匹配的转换
    object obj = "abc";
    int num = (int)obj;
}
catch(InvalidCastException e)
{
   
    Console.WriteLine("捕获到类型转换异常: {0}", e.Message);
}
catch(IndexOutOfRangeException e)
{
   
    Console.WriteLine("捕获到数组越界异常: {0}", e.Message);
}

  在上述代码中,try 块内的代码可能会因为不同原因引发不同类型的异常,通过设置多个 catch 块,就能够精准地捕获相应异常并执行对应的错误处理代码,从而避免程序因为异常而直接崩溃。

(三)finally 关键字

  finally 块有着独特且重要的作用,它用于执行给定的语句,而且无论异常是否被抛出,这些语句都会被执行。这在很多场景中非常关键,比如当我们打开一个文件进行读写操作时,不管在读写过程中是否出现异常,最终都需要确保文件被关闭,以释放相关资源、避免数据丢失或损坏等问题。示例如下:

try
{
   
    FileStream fileStream = new FileStream("test.txt", FileMode
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值