C#异常处理总结及简单实例

一、异常处理的理解?
异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常。
因此处理这种错误,就称为异常处理。
二、异常处理如何操作?
C# 异常处理时建立在四个关键词之上的:try、catch、finally 和 throw。
1、try:一个 try 块标识了一个将被激活的特定的异常的代码块。后跟一个或多个 catch 块。
2、catch:程序通过异常处理程序捕获异常。catch 关键字表示异常的捕获。
3、finally:finally 块用于执行给定的语句,不管异常是否被抛出都会执行。
例如如果你打开一个文件,不管是否出现异常文件都要被关闭。
4、throw:当问题出现时,程序抛出一个异常。使用 throw 关键字来完成。
语法示例:
try
{
// 引起异常的语句
}
catch( ExceptionName e1 )
{
// 错误处理代码
}
catch( ExceptionName e2 )
{
// 错误处理代码
}
catch( ExceptionName eN )
{
// 错误处理代码
}
finally
{
// 要执行的语句
}
三、C#中的异常类
C# 异常是使用类来表示的。C# 中的异常类主要是直接或间接地派生于System.Exception
(1).由System.SystemException派生的异常类型:
System.AccessViolationException 在试图读写受保护内存时引发的异常。
System.ArgumentException 在向方法提供的其中一个参数无效时引发的异常。
System.Collections.Generic.KeyNotFoundException 指定用于访问集合中元素的键与集合中的任何键都不匹配时所引发的异常。
System.IndexOutOfRangeException 访问数组时,因元素索引超出数组边界而引发的异常。
System.InvalidCastException 因无效类型转换或显示转换引发的异常。
System.InvalidOperationException 当方法调用对于对象的当前状态无效时引发的异常。
System.InvalidProgramException 当程序包含无效Microsoft中间语言(MSIL)或元数据时引发的异常,这通常表示生成程序的编译器中有bug。
System.IO.IOException 发生I/O错误时引发的异常。
System.NotImplementedException 在无法实现请求的方法或操作时引发的异常。
System.NullReferenceException 尝试对空对象引用进行操作时引发的异常。
System.OutOfMemoryException 没有足够的内存继续执行程序时引发的异常。
System.StackOverflowException 挂起的方法调用过多而导致执行堆栈溢出时引发的异常。
(2).由System.ArgumentException派生的异常类型:
System.ArgumentNullException 当将空引用传递给不接受它作为有效参数的方法时引发的异常。
System.ArgumentOutOfRangeException 当参数值超出调用的方法所定义的允许取值范围时引发的异常。
(3).由System.ArithmeticException派生的异常类型:
System.DivideByZeroException 试图用零除整数值或十进制数值时引发的异常。
System.NotFiniteNumberException 当浮点值为正无穷大、负无穷大或非数字(NaN)时引发的异常。
System.OverflowException 在选中的上下文中所进行的算数运算、类型转换或转换操作导致溢出时引发的异常。
(4).由System.IOException派生的异常类型:
System.IO.DirectoryNotFoundException 当找不到文件或目录的一部分时所引发的异常。
System.IO.DriveNotFoundException 当尝试访问的驱动器或共享不可用时引发的异常。
System.IO.EndOfStreamException 读操作试图超出流的末尾时引发的异常。
System.IO.FileLoadException 当找到托管程序却不能加载它时引发的异常。
System.IO.FileNotFoundException 试图访问磁盘上不存在的文件失败时引发的异常。
System.IO.PathTooLongException 当路径名或文件名超过系统定义的最大长度时引发的异常。
(5).其他常用异常类型:
ArrayTypeMismatchException 试图在数组中存储错误类型的对象。
BadImageFormatException 图形的格式错误。
DivideByZeroException 除零异常。
DllNotFoundException 找不到引用的dll。
FormatException 参数格式错误。
MethodAccessException 试图访问私有或者受保护的方法。
MissingMemberException 访问一个无效版本的dll。
NotSupportedException 调用的方法在类中没有实现。
PlatformNotSupportedException 平台不支持某个特定属性时抛出该错误。
四、示例
class MyExceptionTest
{
static double SafeDivision(double x, double y)
{
if (y == 0)
throw new System.DivideByZeroException();
return x / y;
}
static void Main()
{
double a = 98, b = 0;
double result = 0;
try
{
result = SafeDivision(a, b);
Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
}
catch (DivideByZeroException e)
{
Console.WriteLine("Attempted divide by zero.");
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# C#异常处理总结
# C#异常处理
# C#中类的异常处理详解
# 总结C#处理异常的方式
# C#异常处理知识汇总
# C#异常处理的技巧和方法
# C#异常处理中try和catch语句及finally语句的用法示例
# 详解C#编程中异常的创建和引发以及异常处理
# 浅谈C#中简单的异常引发与处理操作
# 轻松学习C#的异常处理
# C#异常处理的一些经验和技巧
# C#异常处理详解
# C#各种异常处理方式总结
# 关键词
# 抛出
# 找不到
# 如果你
# 都不
# 都要
# 多个
# 浮点
# 是指
# 中有
# 希望能
# 将被
# 不支持
# 现时
# 其中一个
# 谢谢大家
# 来完成
# 不接受
# 值为
# 发生错误
相关文章:
建站主机默认首页配置指南:核心功能与访问路径优化
建站之星CMS五站合一模板配置与SEO优化指南
如何挑选优质建站一级代理提升网站排名?
建站之星官网登录失败?如何快速解决?
如何安全更换建站之星模板并保留数据?
定制建站是什么?如何实现个性化需求?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站之星如何取消后台验证码生成?
安徽网站建设与外贸建站服务专业定制方案
,sp开头的版面叫什么?
如何选择网络建站服务器?高效建站必看指南
南京网站制作费用,南京远驱官方网站?
简单实现Android文件上传
定制建站如何定义?其核心优势是什么?
C#怎么创建控制台应用 C# Console App项目创建方法
青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?
如何正确选择百度移动适配建站域名?
山东网站制作公司有哪些,山东大源集团官网?
定制建站方案优化指南:企业官网开发与建站费用解析
如何选购建站域名与空间?自助平台全解析
如何零成本快速生成个人自助网站?
宿州网站制作公司兴策,安徽省低保查询网站?
深圳 网站制作,深圳招聘网站哪个比较好一点啊?
郑州企业网站制作公司,郑州招聘网站有哪些?
建站之星下载版如何获取与安装?
家具网站制作软件,家具厂怎么跑业务?
宝塔建站助手安装配置与建站模板使用全流程解析
linux top下的 minerd 木马清除方法
建站之星后台密码遗忘或太弱?如何重置与强化?
自助网站制作软件,个人如何自助建网站?
如何快速搭建高效香港服务器网站?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
建站主机与虚拟主机有何区别?如何选择最优方案?
如何构建满足综合性能需求的优质建站方案?
建站之星后台管理系统如何操作?
如何获取上海专业网站定制建站电话?
php json中文编码为null的解决办法
,购物网站怎么盈利呢?
如何在万网主机上快速搭建网站?
存储型VPS适合搭建中小型网站吗?
制作网站外包平台,自动化接单网站有哪些?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
c++怎么用jemalloc c++替换默认内存分配器【性能】
广平建站公司哪家专业可靠?如何选择?
如何挑选最适合建站的高性能VPS主机?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
如何通过虚拟主机快速完成网站搭建?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
建站之星如何优化SEO以实现高效排名?
*请认真填写需求信息,我们会在24小时内与您取得联系。