C#中类的异常处理

2473e1d874bb03d433e32df30cd03b41.gif

98b5368593a20fd4a676650b72c44ed2.png

欢迎您成为我的读者,希望这篇文章能给你一些帮助。

前言

日常编码过程中,最重要的技能不是说你学会使用很多最新的编程技术或者做出一个高大上的系统。而是你在写代码过程中,对异常的处理,是否系统可以稳定,健壮。

对于异常的处理在C#中是通过try/cath机制来捕获的,接下来我们一起来看看。

异常是程序中的运行时错误,它违反了系统约束或应用程序约束,或出现了在正常操作时未预料的情形。

比如对于某些变量的非正常赋值或者在参与运算操作时出现错误等。

异常

关于异常,在C#中通过try语句和处理异常机制类保证异常的捕获,防止由于异常的未捕获导致整个程序出现异常提醒,甚至出现崩溃。

异常的要求

  • try块包含为避免出现异常而被保护的代码

  • catch子句部分含有一个或多个catch子句。(处理异常代码段也叫做异常处理子程序)

  • finally块含有在所有情况下都要被执行的代码,无论有没有异常发生。

class Program
{static void Main(string[] args){try{//验证是否有异常的代码Ahui hui = new Ahui();InfoBase info = (InfoBase)hui;Console.WriteLine(hui.GetInfo());Console.WriteLine(info.GetInfo());}catch (Exception ex){//捕获异常,进行异常的处理throw new Exception("异常向上一层抛出!");}            Console.ReadKey();}
}

在处理业务代码时,必须在刚开始就将逻辑上的错误都考虑清楚进行验证处理,比如判空,非正常值,值类型错误等。

其次在通过try/catch机制来捕获非正常的异常,防止程序出现无法把控的错误,导致崩溃。

提示:在业务程序中尽量少用异常进行捕获,如果条件满足要第一时间对异常进行前期处理。<Catch()中的异常处理时间会比较长,而且会导致系统资源被浪费(异常实时被往上抛出)。>

在C#中有很多不同类型的异常可能被发生,BCL定义了许多类,每一个类代表一个指定的异常类型。当一个异常发生时,CLR首先创建该类型的异常对象,其次寻找适当的catch子句以处理它。(所有的异常类都派生自System.Exception类)

关于catch()有三种形式,可以处理不同级别的异常。

第一种 一般异常处理

try{}catch{//一般异常处理}

能接受任何异常,但不能确认引起异常的类型。可对可能发生的异常进行普通处理和清理。

第二种 特定异常处理

try}catch(Exception){//特定异常处理}

把一个异常类的名称作为参数,匹配该指定类或派生自它的异常类的异常。

第三种  带对象的特定异常处理

try}catch(Exception ex){throw new Exception(ex.Message);}

可提供关于异常的多种异常信息,匹配指定的异常或派生自它的异常类的异常。通过异常实例,可得到异常的详细信息。

try}catch (Exception ex){//特定异常处理throw new Exception(ex.Message);}finally { //出现异常后的处理机制}

这里需要特别说明下,关于finally中的代码,不管异常是否被捕获,它都会被执行。

在finally中适合存放释放资源或后续处理的代码。

基础知识日更已经29天,如果大家还想继续查询,可以给个关注,感谢您的支持。

寄语

人生短暂,我不想去追求自己看不见的,我只想抓住我能看得见的。

原创不易,给个关注。

我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发  谢谢。

很高兴能和您成为朋友。

0f7b4683b6f36db56e4b06095b87033f.png

47bd6810309497bfad28421577be836c.png

推荐阅读

分享给同做程序员的你我他

毕业四年,我当初是如何走上编程这条路的!

物联网工程专业的迷茫与抉择

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/291397.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB常用操作

1.查看帮助命令 help db.yourColl.help(); db.youColl.find().help(); db.help()&#xff1a;显示数据库操作命令&#xff0c;里面有很多的命令 db.foo.help()&#xff1a;显示集合操作命令&#xff0c;同样有很多的命令&#xff0c;foo指的是当前数据库下&#xff0c;一个叫f…

Linus Torvalds: 成功的项目源于99%的汗水与1%的创新

2017年2月15日&#xff0c;在加利福尼亚州的开源领袖峰会上&#xff0c;由Linux基金会执行董事Jim Zemlin进行的一次采访中&#xff0c;Torvalds讨论了他如何管理Linux内核的开发以及他对工作的态度。\\\\Linus Torvalds认为&#xff0c;科技行业对创新的颂扬是一种自鸣得意&am…

LeetCode之Fizz Buzz

1、题目 Write a program that outputs the string representation of numbers from 1 to n. But for multiples of three it should output “Fizz” instead of the number and for the multiples of five output “Buzz”. For numbers which are multiples of both three a…

Large sum

聪明的办法是想&#xff1a;求前10位&#xff0c;那只要前8位加起来&#xff0c;进2位就OK。 本的办法&#xff0c;就是真的加起来&#xff0c;截前面10位。如我。 numList str.split() sum 0 for i in range(0,len(numList)):sum int(numList[i][0:50])print i,numList[i][…

.NET6之MiniAPI(十六):数据保护

对于web&#xff0c;安全是一个永久的话题&#xff0c;所以ASP.NET Core数据保护提供了一个简单&#xff0c;易用的加密API&#xff0c;可以用来保护数据&#xff0c;密钥管理和轮换。ASP.NET Core的数据保护是根据本机的一个key来生成加密码&#xff0c;然后再用这个key来解密…

linux下安装配置DHCP服务器

前提是已经安装了 core 及 base 两个组 12345# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.4 (Santiago) # uname -a Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux修改…

java ecc 加密_java-信息安全(十一)-非对称加密算法002-ECC,签名003-ECDSA签名

一、概述ECC算法(Elliptic curve cryptography&#xff0c;椭圆曲线密码学)椭圆加密算法(ECC)是一种公钥加密体制&#xff0c;最初由Koblitz和Miller两人于1985年提出&#xff0c;其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。是目前已知的公…

网络数据嗅探工具HexInject

网络数据嗅探工具HexInject网络数据嗅探是渗透测试工作的重要组成部分。通过嗅探&#xff0c;渗透人员可以了解足够多的内容。极端情况下&#xff0c;只要通过嗅探&#xff0c;就可以完成整个任务&#xff0c;如嗅探到支持网络登录的管理员帐号和密码。为了实现这个功能&#x…

.NET 云原生架构师训练营(权限系统 代码实现 ActionAccess)--学习笔记

▲ 点击上方“DotNet NB”关注公众号回复“1”获取开发者路线图学习分享 丨作者 / 郑 子 铭 这是DotNet NB 公众号的第188篇原创文章目录开发任务代码实现开发任务DotNetNB.Security.Core&#xff1a;定义 core&#xff0c;models&#xff0c;Istore&#xff1b;实现 defaul…

小米暑期实习在线笔试2015-04-25

周五晚上参加了小米的全国在线笔试&#xff0c;使用的是百一测评&#xff0c;不得不说&#xff0c;这是我参加过的最不靠谱的在线笔试。 先来描述题目&#xff0c;再来吐槽&#xff0c;在线笔试就是三个必做题和两个附加题。 必做题是三个算法题&#xff0c; 第一题是判断两个十…

表格列mouse经过时高亮显示

前几天Insus.NET有练习《表格行mouse经过时高亮显示》http://www.cnblogs.com/insus/p/3715733.html &#xff0c;今天有奇想&#xff0c;是否可以实现mouse经过表的列时&#xff0c;整列高亮呢&#xff1f;Insus.NET就在前一示例中&#xff0c;修心jQuery来练习。 修改.mouseo…

REDIS调优

2019独角兽企业重金招聘Python工程师标准>>> 1、优先使用批量操作&#xff0c;例如hset&#xff0c; 2、批量命令用管道技术 3、因为redis是单线程的防止慢命令阻塞 4、可以搭建主从读写分离集群&#xff0c;费时的操作都移到读服务 用slowlog get 查看耗时操作 转载…

socket.io服务端是java_SpringBoot(23) 集成socket.io服务端和客户端实现通信

Slf4jService(value "socketIOService")public class SocketIOServiceImpl implements ISocketIOService {/*** 存放已连接的客户端*/private static Map clientMap new ConcurrentHashMap<>();/*** 自定义事件push_data_event,用于服务端与客户端通信*/priv…

LeetCode之Next Greater Element I

1、题目 You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of nums2. Find all the next greater numbers for nums1s elements in the corresponding places of nums2.The Next Greater Number of a number x in nums1 is …

分库分表下极致的优化

题外话这边说一句题外话,就是ShardingCore目前已经正式加入 NCC 开源组织了,也是希望框架和社区能发展的越来越好,希望为更多.netter提供解决方案和开源组件介绍依照惯例首先介绍本期主角:ShardingCore 一款ef-core下高性能、轻量级针对分表分库读写分离的解决方案&#xff0c;…

网页小要求

1. 制作出的网页要求图文并茂&#xff0c;有自己设计的网站Logo图标&#xff1b;文字要有字体格式和颜色上的变化&#xff0c;图形要与网页的内容相关。2. 页面要求使用DIVCSS进行页面设计布局&#xff0c;至少 4个页面&#xff08;图像文件不能太大&#xff09;&…

关于photoshop

photoshop的常见快捷键&#xff1a;&#xff08;只写了一部分&#xff0c;还有的实用快捷键不知道&#xff09; 矩形、椭圆选框工具 M移动工具 V 套索、多边形套索、磁性套索 L 魔棒工具 W 裁剪工具 C 切片工具、切片选择工具 K 喷枪工具 J 画笔工具、铅笔工具 B 像皮图章、图案…

linux(centos) NET模式网络配置

2019独角兽企业重金招聘Python工程师标准>>> linux虚拟机一般使用桥接和net模式&#xff0c;但是由于桥接在不同的网络环境中&#xff0c;需要重新配置&#xff0c;所以建议使用net模式&#xff0c;net模式的配置步骤如下&#xff1a; 虚拟机网络连接使用NAT模式&am…

LeetCode之Island Perimeter

1、题目 You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 represents water. Grid cells are connected horizontally/vertically (not diagonally). The grid is completely surrounded by water, and there is exactly one is…

java获取tomcat目录结构_tomcat目录结构简介_动力节点Java学院整理

tomcat目录结构简介如果我们有一个web应用&#xff0c;名称为“mail”(同时也是web应用所在目录的名称)&#xff0c;那么其目录内不同类型的文件应该服从如下放置的规则&#xff1a;一般来讲&#xff1a;对于html、jsp、css、js文件等&#xff0c;可以直接放置在web应用所在目录…