欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    调试与异常处理.ppt

    • 资源ID:6346281       资源大小:814KB        全文页数:29页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    调试与异常处理.ppt

    C#2008程序设计基础案例教程,第五章 调试与异常处理,程序中的错误类型,1语法错误 语法错误是指在程序代码中,存在不符合Visual C#2008语法规则的语句而产生的错误。,一、程序中的错误类型,2运行错误 运行错误是指程序中的语句本身无语法错误的,但是这些语句在运行时无法正确执行,从而导致程序发生错误。,intA=new int5;int i;for(i=0;i=5;i+)Ai=i*i;,一、程序中的错误类型,3逻辑错误,在程序设计中,有时会出现这样一种情况:程序在编辑和编译时,没有发现任何语法错误,程序也能正常运行和正常退出,但程序就是不能实现要求的功能。在这种情况下,通常就是程序中出现了逻辑错误。,5.1 程序调试,程序员在编码过程中经常犯一些错误,例如算术运算时不小心使计算结果超出结果变量数据类型的有效范围(这种情况称为溢出)。当程序运行时出现了溢出情况,而恰好又位做处理,那么程序将因出现错误而被关闭。但是程序中处理了那么多数据,程序员如何知道错误出现在哪里呢?这就需要使用Visual Studio2008的调试功能。,5.1.2 案例步骤,设置断点为了能让程序在执行语句时程序能暂停,我们可以在这条语句上设置断点,设置中断有以下两种方法:使光标停在语句所在行,然后按快捷键F9或者选择调试菜单的“切换断点”命令。用鼠标单击该行的前边界,如图所示。,单击这里,5.1.2 案例步骤,启动调试单击工具栏上的“启动调试”按钮或按下F5启动调试,选择备忘录功能,程序运行到第一个断点处暂停,注意断点语句此时还未执行。“调试”菜单提供了3个继续执行代码的命令:逐语句逐过程跳出,5.1.2 案例步骤,查看变量的值当程序中断时,将鼠标停在变量上1-2秒,将悬浮显示出变量的当前值,如下图所示:,5.1.3 案例拓展,若断点在循环内部,则每循环一次都要中断一次,若循环次数庞大,将给调试带来不便。可以考虑为断点设置条件,在断点上单击鼠标右键,弹出如图所示菜单:,断点设置,命中次数在菜单中选择“命中次数”命令,弹出“断点命中次数”窗口(见下图),在下拉框中选择“中断,条件是命中次数等于”,文本框中输入50,点击确定后,重新启动调试,发现循环内断点在循环到第50次时才中断,而不是每次都中断。,断点设置,断点其他设置位置:可以设置断点在文件的具体位置。条件:条件是一个表达式,它确定断点是命中还是跳过。当调试器到达该断点时,它会计算条件的值。只有当条件满足时,断点才会命中。可以在某个位置断点处设置条件,只有当条件为真时,才会中断执行。命中次数:它跟踪断点的命中次数。默认情况下,每次命中断点时断点都中断代码的执行。您可以更改此行为,以便仅当命中次数等于或超过指定值或者仅当命中次数为给定值的倍数时,断点才中断代码。通过筛选器,可以将断点设置在指定的计算机、进程和线程上。在调试运行于多个处理器上的应用程序时,筛选器非常有用。,调试窗口,监视窗口 只有在中断状态下可以使用该窗口。可以在监视窗口中监视变量或表达式,如图所示。可以在监视窗口的空行中直接输入要监视的变量或表达式。当代码单步执行时,监视变量或表达式的值若发生变化将以红色字体显示。,调试窗口,快速监视窗口中断时可以选中变量或表达式后右键选择“快速监视”来使用快速监视对话框进行监视,如下图所示:,调试窗口,即时窗口即时窗口用于调试和计算表达式、执行语句、输出变量值等。它使您得以在调试期间输入表达式,由开发语言对其进行计算或执行。若要显示“即时”窗口,请打开要编辑的项目,然后从“调试”菜单中选择“窗口”,再选择“即时”。,调试窗口,命令窗口“命令”窗口用于直接在 Visual Studio 集成开发环境(IDE)中执行命令或别名。可以执行菜单命令和不在任何菜单上显示的命令。若要显示“命令”窗口,请从“视图”菜单中选择“其他窗口”,再选择“命令窗口”。,调试窗口,自动窗口“自动”窗口用于监视程序运行时最后访问的变量。,调试窗口,局部变量窗口“局部变量”窗口监视当前执行方法中的变量。与“自动”窗口相比,“局部变量”窗口列出了更多的变量。,5.2 错误与异常处理,错误的出现并不总是编写应用程序的人的原因,有时应用程序会因为终端用户的操作而发生错误,例如删除只读文件,数据库不存在等。无论如何,我们都应预测应用程序和代码中出现的错误。C#处理错误的机智为每种错误提供定制的处理,并把识别错误的代码与处理错误的代码分离开来,这种机制称为异常处理。,Try-catch-finally 异常处理,trycatchfinally语句格式:try 语句组1;/程序中需要执行的语句 catch(异常1)/发生了“异常1”指定的异常 语句组2;/执行该异常处理 catch(异常n)/发生了“异常n”指定的异常 语句组n;/执行该异常处理 finally/必做的自理 语句组n+1;/该语句块一定被执行,无论是否产生异常 功能:执行“语句组”中的语句,如果产生异常,则系统自动查找距离可以处理这个异常的语句最近的catch语句,并且在运行时决定异常类型。,Try-catch-finally 异常处理,trycatchfinally语句说明:(1)当发生异常时,应寻找一个最佳的catch块。当异常发生时,选择哪一个catch块将取决于异常的类型是否匹配,一个具体的catch块将比一个公共的catch块优先。如在try块中发生了一个除数为0的异常,有两个catch块,一个是捕获所有异常,一个是专门捕获除数为0的异常,此时应执行“专门捕获除数为0的异常”的catch块。(2)可以省略catch块。由于没有catch块,程序执行过程中发生异常,如果有finally块则将直接执行该块中的代码,否则将直接中断。(3)finally块也可以省略。但catch块和finally块不能同时省略。,异常处理,程序的异常处理分为3种不同类型的代码块:try块包含的代码组成了程序的正常操作部分,但可能遇到某些严重的错误。catch块包含的代码处理各种错误,这些错误是try块中的代码执行时遇到的。finally块包含的代码清理资源或执行要在try块或catch块末尾执行的其他操作。无论是否产生异常,都会执行finally块。finally块是可选的。如果不需要清理代码,就不需要包含此块。,异常处理执行步骤,步骤如下:程序流进入try块。如果没有错误发生,就会正常执行操作。当程序流离开try块后,即使什么也没有发生,也会自动进入finally块(第5步)。但如果在try块中程序检测到一个错误,程序流就会跳转到catch块(下一步)。在catch块中处理错误。在catch块执行完后,程序流会自动进入finally块。执行finally块。,异常处理结构变种,可以省略finally块可以提供任意多个catch块,处理不同类型的错误可以省略catch块尽管catch和finally是可选的,但不能同时省略。可以使用throw语句发出在程序执行期间出现反常情况(异常)的信号,使用方法为:throw new 异常类();可以在catch块中使用无表达式的throw语句,在此情况下,该语句会再次引发当前正由 Catch 语句处理的异常。可以使用异常处理结构处理throw抛出的异常。,5.1.3 案例拓展,.NET提供了许多预定义的异常类,如下图所示:,异常类,通常使用异常对象的Message属性获取异常信息,在System.Exception中还有许多其他属性,如下表:,捕获多个异常,一个try结构可能存在多个catch块,这是由于try块中的代码可能引发多种类型的异常,使用多个catch可以捕获各种异常。例如:try int index=Convert.ToInt32(Console.ReadLine();Console.WriteLine(aindex);catch(FormatException ex)Console.WriteLine(应该输入数字:+ex.Message);catch(IndexOutOfRangeException ex)Console.WriteLine(索引超出范围:+ex.Message);catch(Exception ex)Console.WriteLine(其他异常发生:+ex.Message);,异常处理机制,与switch语句的执行方式类似,找到第一个匹配的异常并处理后将不再寻找匹配。如果产生的异常未找到匹配,.NET运行库会捕获它。代码的执行会立即中断,并给用户显示一个对话框,说明代码没有处理异常,并给出.NET运行库能检索到的异常信息。因此,应捕获尽可能多的异常,并以合理的方式处理它们。,try的嵌套,异常的一个特性是try块可以嵌套,如下所示:try/Point A try/Point B catch/Point C finally/clean up/Point Dcatch/error handlingfinally/clean up,try嵌套处理机制,在每个块中,.NET运行库顺序执行try块,查找合适的处理程序,在每个步骤中,当退出catch块后,就会执行对应finally块中的清理代码,但不执行finally块外部的代码。若内部产生的异常内部无法处理则抛出到外部的catch块处理,直到找到合适的catch处理程序,并执行为止。注意:在catch和finally块中抛出异常是合理的。,

    注意事项

    本文(调试与异常处理.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开