已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章 异常处理,我们编写程序的时候,总是希望程序按照自己的意愿工作,但是总可能发生意外,有些意外在编写代码的时候是检查不到的,更有些意外是因为软件所处的环境改变所致。为了提前预防意外的发生,C#提出了异常处理机制,非常聪明地处理这些事情。本章主要涉及到的知识点有: 了解什么是异常,以及C#的异常处理机制。 C#常用的异常。 用try、catch和finally关键字捕获异常。 用throw关键字抛出异常。 自定义异常。,8.1 为什么要异常处理,在开发过程中,我们可以通过程序调试和代码走查来修改程序代码错误。但是程序在运行过程中,往往会遇到一些运行时错误。异常是面向对象编程中用于处理程序错误的有效机制。C#语言本身提供了很好的异常处理机制,充分体现了语言的健壮性。,8.1.1 程序的异常,【本节示例参考:源代码chapter88.1.1ExceptionExample】 我们公司在7楼,下班以后,和同事一起出门,当时电梯还没有到,同事要求走楼梯,我坚持坐电梯,因为一般情况坐电梯都比走楼梯快,但是等坐上电梯以后,电梯出了故障,等我下楼以后,同事早已经在下面等着我了。这是生活中的一个异常。那么,程序中的异常又是怎样的呢?首先,来看一个例子。程序员输入如下的代码逻辑,希望得到输出的结果。 int val = 10; /定义变量i for (int i = 5; i 0; i-) val = i/val; /改变变量值 Console.WriteLine(“val =0“, val); ,8.1.2 处理C#中的异常,【本节示例参考:源代码chapter88.1.2ExceptionExample】 和同事下楼以后,同事幸灾乐祸的地说我坐电梯没他走楼梯快。我说是啊,如果我知道电梯要坏的话,就跟他走楼梯了。可是我之前根本无法知道电梯会坏。生活中经常发生这种不可预测的意外。程序中也一样,总可能发生异常。异常是在程序运行过程中发生的,如图8.2演示了异常处理流程。,8.2 捕获异常,C#语言提供了异常处理的语法支持,C#通过关键字try、catch和finally来执行异常处理。同时可以通过关键字throw抛出异常,让程序上一级或者系统本身来处理抛出的异常。理解了异常处理,只是应用异常的第一步,下面的工作就是捕获异常,并对异常进行处理。同时,读者还可以根据自己的需要自定义异常。,8.2.1 trycatchfinally语句,【本节示例参考:源代码chapter88.2.1ExceptionExample】 继续以坐电梯和走楼梯的故事为例,走楼梯是一种非常保险的方式,不需要考虑有意外的发生;坐电梯就有可能遇到电梯发生故障,但是坐电梯要快一些。所以这样考虑这件事情:我试图坐电梯,如果遇到故障,就按警报!按照编程的逻辑重新组织一下语言,如下所示: 试图 坐电梯 遇到(故障) 按警报 最终 到了楼下 ,8.2.2 抛出异常,【本节示例参考:源代码chapter88.2.2ExceptionExample】 前面演示了如何使用trycatchfinally语句捕获程序异常,这种异常通常只在代码出现错误的时候发生。其实,还可以在代码中显示的抛出异常,方法是使用关键字throw。下面我们编写一个程序,代码如下:,8.2.3 自定义异常,【本节示例参考:源代码chapter88.2.3ExceptionExample】 合理地编写自定义异常类有助于更精确的捕获异常,而不是笼统地认为所有的异常都归结于.NET Framework中定义的Exception类或其已经定义好了的类型。,8.3 小结,本章讲解了异常处理,大家通过对本章的学习,能够充分地了解.NET Framework的异常处理机制,使用.NET Framework自带的异常类处理程序,也可以自定义异常类处理程序。通过本章,读者学习了以下内容: (1)异常是程序运行时错误,发生异常时,程序将意外终止,并将控制权返回给操作系统。 (2)C#常用的异常处理类派生自System.Exception基类。 (3)C#用try、catch和finally关键字捕获异常。用throw关键字抛出异常。,本章习题,一、选择题 1下列关于trycatchfinaly语句的说明中,不正确的是( ) Acatch块可以有多个 Bfinaly块是可选的 Ccatch块也是可选的 D可以只有try块 2为了能够在程序中捕获所有的异常,在catch语句的括号中使用的类名为( ) AException BDivideByZeroException CFormatException D以上三个均可 3关于异常,下列
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新疆博尔塔拉蒙古自治州第五师高级中学高一上生物期末质量跟踪监视模拟试题含解析
- 2023年荣昌县辅警协警招聘考试真题附答案详解(突破训练)
- 2024年云浮辅警招聘考试题库及答案详解一套
- 安徽省泗县三中2025-2026学年高二上生物期末达标测试试题含解析
- 北京市一七一中学2026届化学高二上期末学业水平测试模拟试题含解析
- 2025-2026学年昆明市重点中学生物高一第一学期期末预测试题含解析
- 2026届湖南名师联盟高二上化学期末监测试题含解析
- 2026届山东省济南市济南第一中学生物高一上期末监测试题含解析
- 浙江省杭州市七县市2023年物理高二第一学期期末考试模拟试题含解析
- 2025年四川省攀枝花市第十二中学化学高二第一学期期末达标检测试题含解析
- 工艺管道安装施工方案
- 超星尔雅学习通《中华文化才艺(中国海洋大学)》2025章节测试附答案
- 4-6岁幼儿同伴交往能力量表
- 正弦电气EM303B变频器使用手册
- 大学生心理健康教育(第三版)教案:第二章 认识自我 悦纳自我
- 2025年春季学期 形势与政策讲稿第五讲-从教育大国迈向教育强国
- 柴油发电机组操作培训
- 上海2024年12月上海申康医院发展中心2025年度公开招考3名工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 国际公法学考试题及参考答案
- 《以学生为中心》课件
- 我的家乡安顺
评论
0/150
提交评论