第12章异常处理和注意事项.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第12章异常处理和注意事项.ppt》由会员分享,可在线阅读,更多相关《第12章异常处理和注意事项.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第12章 异常处理和注意事项12.1 错误和异常处理12.2 C#编程规则12.3 小结12.1 错误和异常处理错误可以分为以下错误可以分为以下3类。类。语法错误:程序代码的编写中,没有按照规语法错误:程序代码的编写中,没有按照规定的语法则会产生语法错误。定的语法则会产生语法错误。逻辑错误:程序逻辑处理出现的错误。逻辑逻辑错误:程序逻辑处理出现的错误。逻辑错误会导致实际处理结果和预测结果不相错误会导致实际处理结果和预测结果不相符。符。运行时错误:该错误通常表现为内存泄露、运行时错误:该错误通常表现为内存泄露、以零作除数等,这些异常会在运行时出现,以零作除数等,这些异常会在运行时出现,难以确定错
2、误起因。难以确定错误起因。12.1.1 异常处理类Exception是异常类的基类。是异常类的基类。Exception类的常用属性:类的常用属性:Message、Data、Source、StackTrace等。等。异常类中最重要的属性就是异常类中最重要的属性就是Message属性属性和和StackTrace属性。属性。Message属性中包含属性中包含了出错的原因。了出错的原因。StackTrace属性记录了出属性记录了出错的详细方法名称。错的详细方法名称。异常可由系统抛出,也可由客户程序使用异常可由系统抛出,也可由客户程序使用throw关键字引发关键字引发 12.1.1 异常处理类异常继承体
3、系:异常继承体系:12.1.1 异常处理类常用系统异常类:常用系统异常类:OutOfMemoryException:没有足够的内存继续:没有足够的内存继续执行程序引发的异常;执行程序引发的异常;InvalidCastException:因无效类型转换或显式转:因无效类型转换或显式转换引发的异常;换引发的异常;OverflowException进行算术运算、类型转换或转进行算术运算、类型转换或转换操作导致溢出的异常;换操作导致溢出的异常;ApplicationException:是第三方定义的异常基类:是第三方定义的异常基类,此异常只能由用户程序引发,而不能由系统引发。,此异常只能由用户程序引发
4、,而不能由系统引发。12.1.2 捕获异常方式错误发现方式错误发现方式:使用调试器测试:通常每种开发语言环境都使用调试器测试:通常每种开发语言环境都有调试器,并且都方便实用。有调试器,并且都方便实用。单元测试:即针对程序模块进行的测试。单元测试:即针对程序模块进行的测试。集成测试:也称为联合测试或组装测试。集成测试:也称为联合测试或组装测试。确认测试:也称为有效性测试。确认测试通确认测试:也称为有效性测试。确认测试通常也使用黑盒测试方式,需要根据用户的常也使用黑盒测试方式,需要根据用户的需求输入一些数据,以检查软件是否可以需求输入一些数据,以检查软件是否可以正常运行。正常运行。12.1.2 捕
5、获异常方式使用调试器进行调试的方式:使用调试器进行调试的方式:断点:是程序执行暂停的地方。断点:是程序执行暂停的地方。3个方法设置断点,在个方法设置断点,在菜单栏中单击菜单栏中单击【调试调试】|【新建断点新建断点】命令,或者在行命令,或者在行的最左边单击,或者按的最左边单击,或者按【F9】键。只需再执行一遍和键。只需再执行一遍和设置断点相同的操作即可取消断点。设置断点相同的操作即可取消断点。执行光标:执行光标一般黄色的,用于标识程序当前执行光标:执行光标一般黄色的,用于标识程序当前运行到的行。运行到的行。调试工具栏:是包含调试时的常用命令的工具栏调试工具栏:是包含调试时的常用命令的工具栏,包,
6、包括启动调试、全部中断、停止调试、重新启动、显示括启动调试、全部中断、停止调试、重新启动、显示下一语句、逐语句、逐过程和跳出命令按钮。下一语句、逐语句、逐过程和跳出命令按钮。断点管理窗口断点管理窗口自动窗口自动窗口局部变量窗口局部变量窗口监视窗口监视窗口即时窗口即时窗口12.1.2 捕获异常方式断点管理窗口:该窗口列出了所有断点,其断点管理窗口:该窗口列出了所有断点,其中每一行都代表一个断点,每个断点都由所中每一行都代表一个断点,每个断点都由所在文件、条件、命中次数等项来描述。在文件、条件、命中次数等项来描述。自动窗口:必须在调试运行时才能打开自动窗口:必须在调试运行时才能打开,“自动窗口自动
7、窗口”自动跟踪运行光标的当前行和下自动跟踪运行光标的当前行和下一行的变量,显示变量列表和变量当前值。一行的变量,显示变量列表和变量当前值。“自动窗口自动窗口”的变量是系统自动跟踪的,无的变量是系统自动跟踪的,无需自行添加。而且,当运行光标所在语句行需自行添加。而且,当运行光标所在语句行有方法调用时,有方法调用时,“自动窗口自动窗口”将显示该方法将显示该方法以及包含该方法调用的所有方法的返回值。以及包含该方法调用的所有方法的返回值。12.1.2 捕获异常方式局部变量窗口:局部变量窗口跟踪当前局部范局部变量窗口:局部变量窗口跟踪当前局部范围内所有变量,跟踪的局部范围就是该方法的围内所有变量,跟踪的
8、局部范围就是该方法的作用范围,也就是说局部变量窗口可以显示方作用范围,也就是说局部变量窗口可以显示方法内出现的所有变量。法内出现的所有变量。监视窗口:可以自定义要跟踪的变量监视窗口:可以自定义要跟踪的变量。即时窗口:即时窗口:“即时窗口即时窗口”可以不在调试时执行。可以不在调试时执行。如果在调试中执行,在如果在调试中执行,在“即时窗口即时窗口”里可以计里可以计算表达式、执行语句、跟踪变量等。算表达式、执行语句、跟踪变量等。12.1.2 捕获异常方式结构化异常处理结构化异常处理:对于结构化异常处理,使用:对于结构化异常处理,使用try catch语句结构来捕获和处理错误语句结构来捕获和处理错误。
9、如果进。如果进行了异常处理,那么行了异常处理,那么CLR将调用异常处理代码;将调用异常处理代码;如果未进行异常处理,那么如果未进行异常处理,那么CLR会终止程序的会终止程序的执行并弹出错误提示窗口。其语法形式为:执行并弹出错误提示窗口。其语法形式为:try 正常处理模块正常处理模块Catch(Exception e)错误处理模块错误处理模块12.1.2 捕获异常方式示例:示例:static void Main(string args)int a=new int5;try a10=1;catch(Exception e)Console.WriteLine(数组访问错误数组访问错误,0,e.Mes
10、sage);Console.ReadLine();12.1.3 自定义异常处理类自定义异常类语法形式如下。自定义异常类语法形式如下。public class UserMessageException:ApplicationException public UserMessageException(String msg):base(msg)对于自定义异常处理类,需要人为引发异常,对于自定义异常处理类,需要人为引发异常,因此需要使用因此需要使用throw关键字显式引发异常。关键字显式引发异常。12.1.3 自定义异常处理类throw使用示例:使用示例:static void Main(string
11、 args)try .if(ia.Length)throw new IndexOutOfRangeException();ai=int.Parse(Console.Readline();catch(System.IndexOutOfRangeException e)/数组越界异常数组越界异常 12.1.3 自定义异常处理类自定义异常类使用示例:自定义异常类使用示例:class EmailException:Exception string errorname;/出错人姓名出错人姓名 string errmsg;/错误信息错误信息 public EmailException(string msg
12、,string name):base(msg)/构构造函数造函数 errorname=name;errordate=DateTime.Now.ToString();errormsg=msg;public void SendToMail()Console.WriteLine(errorname+”+errormsg);12.1.3 自定义异常处理类代码接上节代码接上节 class Test static bool CheckEmail()return false;static void Main(string args)try if(!CheckEmail()throw new EmailExc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 异常 处理 注意事项
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内