C#异常捕获

前言

在C#中,我们无法保证我们编写的程序没有一点bug,如果我们对于这些抛出异常的bug不进行任何的处理的话,那么我们的软件在抛出这些异常的时候就会崩溃,也就是软件闪退,并且这种闪退由于我们没有进行处理,导致闪退的原因我们也发现不了,这就是一个很严重的问题。当然在C#中我们也有相应的语法来应对这些异常,也就是try-catch 语句,try-catch用于处理在运行时可能发生的异常。我们可以在catch语句中捕获异常,然后对这些异常进行处理,比如用日志记录下异常等。

1、捕获特定的异常

由于异常的种类很多,在C#中定义了各种异常,我们在开发程序中可以捕获特定格式的异常,比如FormatException ,这个异常就是格式异常。

csharp 复制代码
            try
            {
                int result = int.Parse("a");
            }
            catch (FormatException ex)
            {
                Console.WriteLine("捕获到格式异常: " + ex.Message);
            }

2、捕获所有异常

虽然C#中存在各种指定格式的异常,但是在实际开发中,由于我们不知道编写的程序会抛出什么样的异常,所以一般很少使用指定格式的异常,除非你确定这段代码会抛出哪种类型的异常,一般情况下都是直接捕获所有异常,代码如下:

csharp 复制代码
            try
            {
                int result = int.Parse("a");
            }
            catch (Exception ex)
            {
                Console.WriteLine("捕获到未知异常: " + ex.Message);
            }

3、捕获异常或不捕获都要执行固定代码

有时候我们编写的程序不论有没有异常,都要执行某些代码,这样我们就可以将这些代码放到try catch finally的finally中,这样不发生异常的时候,代码走try finally,发生异常的异常代码走try catch finally,finally是一定执行的。

csharp 复制代码
            try
            {
                int result = int.Parse("a");
            }
            catch (Exception ex)
            {
                Console.WriteLine("捕获到未知异常: " + ex.Message);
            }
            finally
            {
                Console.WriteLine("程序已程序完毕");
            }
相关推荐
贵州山魈羡民10 分钟前
【玩转手机】通过 Podroid 上的 Alpine 部署 1Panel,把微型服务器装进口袋
运维·服务器
八解毒剂13 分钟前
【计组】中央处理器CPU
java·开发语言·计算机组成原理
FakeOccupational1 小时前
【电路笔记 信号】DBPSK 波形查找表+脉冲成形(升余弦+根升余弦滤波)
开发语言·笔记
打工仔折腾 AI1 小时前
工业场景下时序库与实时计算一体化架构选型实践对比
java·开发语言·后端·python·性能优化·架构·ai agent 实战
ZealSinger1 小时前
Java虚拟线程上线后瓶颈转移到哪看三层
java·开发语言·firefox
程序员-Benothing2 小时前
Shell输入输出详解:read、echo、printf、颜色输出
linux·运维·服务器
FPGA小徐3 小时前
从 NEMU 到 AbstractMachine:程序、运行时环境与 AM 完全解析
linux·运维·服务器
weixin_440730503 小时前
函数return、参数、参数组、递归函数、高阶函数等小结
开发语言·python
sugarzhangnotes3 小时前
【无标题】
开发语言·人工智能·python
geovindu3 小时前
rust: Composite Pattern
开发语言·后端·设计模式·rust·组合模式