微软教材 visual C# 2005 程序设计语言 第七章.ppt

上传人:s****8 文档编号:82767013 上传时间:2023-03-26 格式:PPT 页数:49 大小:809.50KB
返回 下载 相关 举报
微软教材 visual C# 2005 程序设计语言 第七章.ppt_第1页
第1页 / 共49页
微软教材 visual C# 2005 程序设计语言 第七章.ppt_第2页
第2页 / 共49页
点击查看更多>>
资源描述

《微软教材 visual C# 2005 程序设计语言 第七章.ppt》由会员分享,可在线阅读,更多相关《微软教材 visual C# 2005 程序设计语言 第七章.ppt(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第 7 章:程序的章:程序的生成、调试和异生成、调试和异常处理常处理Visual C#2005程序设计语言程序设计语言第第1章章:概述概述第第 2 章:章:C#与与Visual Studio 2005第第 3 章:章:变量、数据类变量、数据类型和表达式型和表达式第第 4 章:分支和循环章:分支和循环第第 5 章:面向对象章:面向对象第第 6 章:面向对象的高章:面向对象的高级应用级应用第第 7 章:章:程序的生成、程序的生成、调试和异常处理调试和异常处理第第 8 章:数组与字符串章:数组与字符串 第第 9 章:章:基于基于 Windows 的应用程序的应用程序第第 10 章:章:创建创建 W

2、eb 应应用程序用程序第第 11 章:章:.NET Framework 2.0 简介简介本章学习目标:本章学习目标:使用使用Visual Studio 2005生成程序生成程序使用使用Visual Studio 2005调试程序调试程序掌握掌握C#应用程序中的异常处理技术应用程序中的异常处理技术目标目标在在 Visual Studio 2005中生成程序中生成程序 Visual Studio 2005的调试功能的调试功能 异常处理异常处理 小结小结实验实验习题习题第第7章章 程序的生成、调试和异常处理程序的生成、调试和异常处理 在在 Visual Studio 2005中生成程序中生成程序 7

3、.1 在在 Visual Studio 2005 2005中生成程序中生成程序 在创建每个在创建每个 Visual Studio 项目时,系统会定义项目时,系统会定义默认的项目配置并分配默认的解决方案生成默认的项目配置并分配默认的解决方案生成配置,以便在生成应用程序时提供必要的参配置,以便在生成应用程序时提供必要的参数数在开发过程中,解决方案及其各个项目通常在开发过程中,解决方案及其各个项目通常都会以都会以“Debug”版本的方式生成并测试版本的方式生成并测试 在项目或解决方案完全开发并充分调试后,在项目或解决方案完全开发并充分调试后,以以“Release”方式编译其组件方式编译其组件 正常的

4、应用程序的开发和发布过程:正常的应用程序的开发和发布过程:在在 Visual Studio 2005中生成程序中生成程序Visual Studio 2005的调试功能的调试功能异常处理异常处理小结实验实验习题习题第第7章章 程序的生成、调试和异常处理程序的生成、调试和异常处理 Visual Studio 2005的调试功能的调试功能 7.2 Visual Studio 2005的调试功能的调试功能 Visual Studio 2005 调试器调试器 随堂练习随堂练习 开始(或继续)执行开始(或继续)执行中断执行中断执行停止执行停止执行逐句执行逐句执行调试工具栏调试工具栏Visual Studi

5、o 2005 调试器调试器7.2.1 Visual Studio 2005 调试器调试器Visual Studio 调试命令调试命令:从从“调试调试”菜单中选择菜单中选择“开始(开始(F5)”、“逐语句逐语句”或或“逐过程逐过程”,或在源窗口中,右击可执行代码或在源窗口中,右击可执行代码中的某行,然后从快捷菜单中选择中的某行,然后从快捷菜单中选择“运行到光标处运行到光标处”即可开始执行调试即可开始执行调试如果选择如果选择“运行到光标处运行到光标处”,则应用程序启动并一,则应用程序启动并一直运行到断点或光标位置,具体看是断点在前还是直运行到断点或光标位置,具体看是断点在前还是光标在前光标在前可以

6、使用可以使用“调试调试”菜单上的菜单上的“开始执行开始执行(不调试不调试)”命命令,也就是快捷键令,也就是快捷键Ctrl+F5,在不使用调试器的情况,在不使用调试器的情况下开始执行项目下开始执行项目Visual Studio 2005 调试器(续)调试器(续)7.2.1 Visual Studio 2005 调试器调试器开始(或继续)执行开始(或继续)执行 :(1)使光标停在希望程序中断的地方,然后点击快捷键使光标停在希望程序中断的地方,然后点击快捷键F9。(2)用鼠标单击那一行的前边界,如下图所示:用鼠标单击那一行的前边界,如下图所示:Visual Studio 2005 调试器(续)调试器

7、(续)7.2.1 Visual Studio 2005 调试器调试器中断执行中断执行:从从“调试调试”菜单中选择菜单中选择“停止调试停止调试”终止所有正调试的附加进程终止所有正调试的附加进程 停止调试并重新启动停止调试并重新启动 Visual Studio 2005 调试器(续)调试器(续)7.2.1 Visual Studio 2005 调试器调试器停止执行停止执行:逐语句逐语句 逐过程逐过程 跳出跳出 Visual Studio 2005 调试器(续)调试器(续)7.2.1 Visual Studio 2005 调试器调试器逐句执行逐句执行:Visual Studio 2005 调试器(续

8、)调试器(续)7.2.1 Visual Studio 2005 调试器调试器调试工具栏调试工具栏:在在Viusal Studio 2005 的标准工具栏的空白处单击鼠的标准工具栏的空白处单击鼠标右键,从中选择标右键,从中选择“调试调试”(Debug),调出),调出“调调试试”工具栏。工具栏。多媒体演示:多媒体演示:Visual Studio 2005调试器调试器多媒体演示多媒体演示随堂练习随堂练习7.2.2 随随堂练习堂练习下面这段程序在正常使用的时候不会出现错误,但是当输入的下面这段程序在正常使用的时候不会出现错误,但是当输入的参数不是数字的时候,或者参数不是数字的时候,或者B B为零的时候

9、,程序就会出错。请为零的时候,程序就会出错。请使用使用Visual Studio 2005的调试功能调试出下面这段程序。出错的调试功能调试出下面这段程序。出错的地方,分析其出错原因并做出改进。的地方,分析其出错原因并做出改进。using System;class Program static void Main(string args)int cs,bcs;double result;Console.WriteLine(请输入一个被除数请输入一个被除数 A:);bcs=Convert.ToInt32(Console.ReadLine();Console.WriteLine(请输入一个除数请输入

10、一个除数 B:);cs=Convert.ToInt32(Console.ReadLine();result=bcs/cs;Console.WriteLine(那么:那么:A/B=+result);在在 Visual Studio 2005中生成程序中生成程序 Visual Studio 2005的调试功能的调试功能 异常处理异常处理 小结小结实验实验 习题习题 第第7章章 程序的生成、调试和异常处理程序的生成、调试和异常处理 异常类异常类 使用异常使用异常System.Exception的常用属性的常用属性默认异常处理默认异常处理 嵌套的嵌套的 try块块 用户定义的异常类用户定义的异常类 异

11、常处理异常处理 7.3 异常处理异常处理异常类异常类 7.3.1 异常类异常类 在在C#中,当出现某种异常时,就会创建一个中,当出现某种异常时,就会创建一个异常对象。这个对象包含有助于跟踪问题的异常对象。这个对象包含有助于跟踪问题的信息。我们可以创建自己的异常类,但信息。我们可以创建自己的异常类,但.NET已经提供了许多预定义的异常类已经提供了许多预定义的异常类。异常基类异常基类 常用异常类列表:常用异常类列表:异常基类异常基类(续)(续)在该层次结构中有两个重要的类,它们均派生于在该层次结构中有两个重要的类,它们均派生于System.Exception:System.SystemExcept

12、ion 通常由通常由.NET运行库引发运行库引发 System.ApplicationException这个类非常重要,因为它这个类非常重要,因为它是第三方定义的异常类。是第三方定义的异常类。异常基类(续)异常基类(续)其他可能用到的异常类包括:其他可能用到的异常类包括:StackOverflowException如果分配给堆栈的内存区域已满,如果分配给堆栈的内存区域已满,就会引发这个异常。就会引发这个异常。EndOfStreamException这个异常通常是因为要读到文件末尾这个异常通常是因为要读到文件末尾而引发的。而引发的。OverflowException如果要在如果要在checked

13、环境下把包含值环境下把包含值40的的int类型数据转换为类型数据转换为uint数据,就会引发这个异常。数据,就会引发这个异常。使用异常使用异常 7.3.2 使用异常使用异常 C#代码中处理可能的错误情况,一般要把程序代码中处理可能的错误情况,一般要把程序的相关部分分成的相关部分分成3种不同类型的代码块:种不同类型的代码块:try块包含的代码组成了程序的正常操作部分,但可能遇到某块包含的代码组成了程序的正常操作部分,但可能遇到某些严重的错误情况。些严重的错误情况。catch块包含的代码处理各种错误情况,这些错误是块包含的代码处理各种错误情况,这些错误是try块中块中的代码执行时遇到的。的代码执行

14、时遇到的。finally块包含的代码清理资源或执行要在块包含的代码清理资源或执行要在try块或块或catch块末尾块末尾执行的其他操作执行的其他操作。try-catchtry-finallytry-catch-finallythrow使用异常使用异常(续)(续)7.3.2 使用异常使用异常catch 子句使用时可以不带任何参数,这种情子句使用时可以不带任何参数,这种情况下它捕获任何类型的异常,并被称为一般况下它捕获任何类型的异常,并被称为一般 catch 子句。子句。catch(InvalidCastException e)try-catchtry-catch 语句由一个语句由一个 try 块

15、后跟一个或多个块后跟一个或多个 catch 子句构成子句构成。在在 catch 块中可以使用块中可以使用 throw 语句再次引发已由语句再次引发已由 catch 语句捕获的异常。语句捕获的异常。catch(InvalidCastException e)throw(e);/重新抛出异常重新抛出异常try-catch(续)(续)try-catch 语句由一个语句由一个 try 块后跟一个或多个块后跟一个或多个 catch 子句构成子句构成。多媒体演示:多媒体演示:try-catch多媒体演示多媒体演示示例代码示例代码try-finally finally 块用于清除块用于清除 try 块中分配的

16、任何资源块中分配的任何资源以及运行任何即使在发生异常时也必须执行以及运行任何即使在发生异常时也必须执行的代码。控制总是传递给的代码。控制总是传递给 finally 块,与块,与 try 块的退出方式无关块的退出方式无关 。catch 用于处理语句块中出现的异常,而用于处理语句块中出现的异常,而 finally 用于保证代码语句块的执行,与前面用于保证代码语句块的执行,与前面的的 try 块的退出方式无关。块的退出方式无关。多媒体演示:多媒体演示:try-finally 多媒体演示多媒体演示示例代码示例代码try-catch-finally catch catch 和和 finally fina

17、lly 一起使用的常见方式:在一起使用的常见方式:在 try try 块中获取并使用资源,在块中获取并使用资源,在 catch catch 块中处理异常情块中处理异常情况,并在况,并在 finally finally 块中释放资源。块中释放资源。多媒体演示:多媒体演示:try-catch-finally 多媒体演示多媒体演示示例代码示例代码throw throw 语句用于发出在程序执行期间出现反常情语句用于发出在程序执行期间出现反常情况(异常)的信号。引发的异常是一个对象,况(异常)的信号。引发的异常是一个对象,该对象的类是从该对象的类是从 System.Exception 派生的派生的 。通

18、常通常 throw 语句与语句与 try-catch 或或 try-finally 语句语句一起使用。当引发异常时,程序查找处理此异一起使用。当引发异常时,程序查找处理此异常的常的 catch 语句。也可以用语句。也可以用 throw 语句重新引语句重新引发已捕获的异常。发已捕获的异常。多媒体演示:多媒体演示:throw多媒体演示多媒体演示示例代码示例代码System.Exception的常用属性的常用属性 7.3.3 System.Exception的常用属性的常用属性 System.Exception的常用属性的常用属性 属性说明HelpLink链接到一个帮助文件上,以提供该异常的更多信息

19、Message描述错误情况的文本Source导致异常的应用程序或对象名StackTrace堆栈上方法调用的信息,它有助于跟踪引发异常的方法TargetSite引发异常的方法的.NET反射对象InnerException如果异常是在catch块中引发的,它就会包含把代码发送到catch块中的异常对象默认异常处理默认异常处理 7.3.4 默认异常处理默认异常处理NET运行库会捕获异常。运行库会捕获异常。NET运行库可以把整个程序放在另一运行库可以把整个程序放在另一个更大的个更大的try块中,每个块中,每个.NET程序都会程序都会这么做。这个这么做。这个try块有一个块有一个 catch处理处理程序

20、,它可以捕获任何类型的异常。程序,它可以捕获任何类型的异常。嵌套的嵌套的 try块块 7.3.5 嵌套的嵌套的 try块块 在在try嵌套的时候,其处理过程有一条准则:嵌套的时候,其处理过程有一条准则:从内到外,如果没有合适的异常处理来接收异从内到外,如果没有合适的异常处理来接收异常,那么就由常,那么就由.NET来处理这个异常。来处理这个异常。用户定义的异常类用户定义的异常类 7.3.6 用户定义的异常类用户定义的异常类假设你正在实现一个方法叫做假设你正在实现一个方法叫做monthName,这个方,这个方法接受一个简单的法接受一个简单的int类型的参数,并且返回一个类型的参数,并且返回一个对应

21、的月份。比如,对应的月份。比如,monthName(1)返回返回“January”。问题是:当参数小于。问题是:当参数小于1或者参数大于或者参数大于12的时候,方法应该返回什么呢?的时候,方法应该返回什么呢?学习了异常之后,我们可以想到一个很好的办法,学习了异常之后,我们可以想到一个很好的办法,即方法不返回任何东西,而仅仅引发一个异常。即方法不返回任何东西,而仅仅引发一个异常。虽然虽然.NET Framework类库包含了大量的定义好的异类库包含了大量的定义好的异常处理类。但是,现实中会遇到各种各样系统未常处理类。但是,现实中会遇到各种各样系统未定义过的错误。此时,就需要我们自己定义一个定义过

22、的错误。此时,就需要我们自己定义一个异常处理类,并在出现这种异常的时候使用异常处理类,并在出现这种异常的时候使用throw关键字引发此异常。关键字引发此异常。多媒体演示:用户定义的异常类多媒体演示:用户定义的异常类多媒体演示多媒体演示在在 Visual Studio 2005中生成程序中生成程序 Visual Studio 2005的调试功能的调试功能 异常处理异常处理 小结小结实验实验习题习题第第7章章 程序的生成、调试和异常处理程序的生成、调试和异常处理 7.4 小结小结本章重点介绍了如何生成和调试本章重点介绍了如何生成和调试C#C#程序,包括设程序,包括设置和修改断点,使用调试窗口;还介

23、绍了如何进置和修改断点,使用调试窗口;还介绍了如何进行异常处理。行异常处理。小结小结 在在 Visual Studio 2005中生成程序中生成程序 Visual Studio 2005的调试功能的调试功能 异常处理异常处理 小结小结实验实验习题习题第第7章章 程序的生成、调试和异常处理程序的生成、调试和异常处理 实验实验7.5 实验实验参照实验手册,并在教师指导参照实验手册,并在教师指导下完成实验报告。下完成实验报告。在在 Visual Studio 2005中生成程序中生成程序 Visual Studio 2005的调试功能的调试功能 异常处理异常处理 小结小结实验实验习题习题第第7章章

24、程序的生成、调试和异常处理程序的生成、调试和异常处理 习题习题7.6习题习题1.填空题填空题(1)当一个方法执行时出错了,会当一个方法执行时出错了,会_。(2)try块运行后,总是会执行块运行后,总是会执行_块块中的代码。中的代码。(3)所有的异常类都从所有的异常类都从_继承。继承。(4)Convert.ToInt32方法会方法会引发引发_,如果输入的参数不能转化为整数。如果输入的参数不能转化为整数。习题(续)习题(续)7.6习题习题2.判断正误,如果错误,请说明原因。判断正误,如果错误,请说明原因。(1)当前方法产生的异常总是由当前的方当前方法产生的异常总是由当前的方法来处理。法来处理。(2

25、)用户自定义的异常应该从用户自定义的异常应该从System.Exception类继承。类继承。(3)当访问数组的索引越界时,会有异常当访问数组的索引越界时,会有异常引发。引发。(4)如果在如果在try块后没有任何块后没有任何catch块,那么块,那么finally块也是可选的。块也是可选的。习题(续)习题(续)7.6习题习题3.编程改错题编程改错题(1)在在try语句中,引发一个语句中,引发一个NullReferenceException异常,捕获其并报告。异常,捕获其并报告。最终执行输出最终执行输出“Executing finally block.”。输出:输出:Executing the

26、try statement.System.NullReferenceException:Object reference not set to an instance of an object.at EHClass.Main()Caught exception#1.Executing finally block.习题(续)习题(续)7.6习题习题3.编程改错题编程改错题(2)执行以下语句,验证输出语句有无执行,并执行以下语句,验证输出语句有无执行,并解释理由。解释理由。using System;public class ThrowTest static void Main()string s=

27、null;if(s=null)throw new ArgumentNullException();Console.Write(The string s is null);习题(续)习题(续)7.6习题习题3.编程改错题编程改错题(3)判断以下程序会在哪里产生异常或错误判断以下程序会在哪里产生异常或错误。static void Main()int x;try /Dont initialize this variable here.x=123;catch /Error:Use of unassigned local variable x.Console.Write(x);习题(续)习题(续)7.6

28、习题习题3.编程改错题编程改错题(4)判断以下程序是否可以判断以下程序是否可以捕获两捕获两个异常个异常。如不。如不可以可以,如何更改?,如何更改?using System;class MainClass static void ProcessString(string s)if(s=null)throw new ArgumentNullException();习题(续)习题(续)7.6习题习题 static void Main()try string s=null;ProcessString(s);catch(Exception e)Console.WriteLine(0 Second exception caught.,e);catch(ArgumentNullException e)Console.WriteLine(0 First exception caught.,e);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁