当前位置: 首页 > news >正文

C#异常捕获

前言

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

1、捕获特定的异常

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

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

2、捕获所有异常

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

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

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

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

            try{int result = int.Parse("a");}catch (Exception ex){Console.WriteLine("捕获到未知异常: " + ex.Message);}finally{Console.WriteLine("程序已程序完毕");}
http://www.lryc.cn/news/390130.html

相关文章:

  • 工业一体机根据软件应用需求灵活选配
  • centos7 mqtt服务mosquitto搭建记录
  • 双阶段目标检测算法:精确与效率的博弈
  • Python量化交易策略
  • 为什么我感觉 C 语言在 Linux 下执行效率比 Windows 快得多?
  • 算法导论 总结索引 | 第四部分 第十六章:贪心算法
  • 用“文心一言”写的文章,看看AI写得怎么样?
  • 企业消费采购成本和员工体验如何实现“鱼和熊掌“的兼得?
  • 发表EI论文相当于SCI几区?
  • STFT短时傅里叶变换MTLAB简析
  • 海致科技实施实习生面试
  • 论文阅读之旋转目标检测ARC:《Adaptive Rotated Convolution for Rotated Object Detection》
  • 面向对象(Java)
  • I/O多路复用
  • 线性代数基础概念:向量空间
  • php 抓取淘宝商品评论数据 json
  • Java 7新特性深度解析:提升效率与功能
  • RHEL9找不到/var/log/dmesg日志文件问题
  • 是什么让以太坊从众多公链中脱颖而出
  • HarmonyOS--路由管理--组件导航 (Navigation)
  • 【Linux 命令】文件比较 diff
  • 猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0
  • 你的硬盘知道的太多:你以为你的秘密真的被删除了吗?
  • 虚拟机的网络配置
  • ONLYOFFICE8.1版本桌面编辑器简单测评
  • PDF内存如何变小,PDF内存压缩,PDF内存变小怎么调整
  • 深⼊理解MySQL Innodb存储引擎的缓冲池、事务、索引底层工作原理,掌握 MySQL 主从同步,读写分离技术以及集群的搭建,具备分库分表,SQL调优经验
  • 《HelloGitHub》第 99 期
  • mysql 将一个列按逗号分割为多列
  • Vue 3中 <script setup> 与生命周期钩子函数的详细解析