应用程序 XASBF 中的服务器错误,程序调试与错误处理课件.ppt

第9章,错误处理,程序调试,与,程序调试的主要任务:查找程序的错误和排除错误本章主要内容VB程序中的错误类型程序工作模式程序调试错误处理,第9章程序调试与错误处理,三类错误类型:编译错误,逻辑错误和运行错误1.编译错误编译错误是指在程序编译过程中出现的错误。通常是由于不正确书写代码而产生的。例如:关键字写错,遗漏标点符号,括号不匹配等。较为容易排除。VB提供了自动语法检查功能,能指出并显示这些错误,帮助用户纠正语法错误。例子:Foort=1To100,9.1VB程序中的错误类型,2.运行错误运行时的错误是指应用程序在运行期间执行了非法操作所发生的错误。例如,除法运算中除数为零,访问文件时文件夹或文件找不到等。这种错误只有在程序运行时才能被发现。举例(“下标越界”):PrivateSubForm_Load()DimD(20)AsInteger,kAsIntegerFork=1To30D(k)=k*KNextkEndSub,3.逻辑错误逻辑错误使程序运行时得不到预期的结果。这种程序没有语法错误,也能运行,但却得不到正确的结果。例如,在一个算术表达式中,把乘号“*”写成了加号“+”,条件语句的条件写错,循环次数计算错误等例如,要求10!,若采用:PrivateSubForm_Load()DimtAsIntegerFori=1To10t=t*iNextiShow:PrinttEndSub运行程序时输出的结果是0通常,调试程序过程中所花的大部分时间和精力都在逻辑错误上,三种工作模式:设计模式、运行模式和中断模式1.设计模式在设计模式下,可以建立应用程序的用户界面,设置控件的属性,编写程序代码等2.运行模式在运行模式下,可以测试程序的运行结果,可以与应用程序对话,还可以查看程序代码,但不能修改程序3.中断模式在中断模式下,可以利用各种调试手段检查或更改某些变量或表达式的值,或者在断点附近单步执行程序,以便发现错误或改正错误,9.2程序工作模式,进入中断模式的方法:(1)在代码中插入Stop语句;(2)在代码窗口中设置断点(用菜单命令);(3)在代码窗口中设置断点(鼠标操作);(4)在程序运行时强制“中断”;(5)当程序运行出现错误。当检查调试通过后,需要清除断点,,程序调试一般包括静态检查和动态检查9.3.1静态检查与动态检查静态检查程序的基本方法是逐行逐句地读程序,弄清楚每条语句的作用,预见每条语句和模块的执行结果,判断是否与预期结果相一致,这就是静态检查,也称人工检查。静态检查无误后,就可以进行更有效的动态检查。通过上机调试来发现错误称为动态检查。动态检查的基本方法是输入一组典型的数据来运行程序。程序对这些数据处理结果应是已知的,通过运行后实际结果和预想结果相比较,可以判断程序的正确性,9.3程序调试,例如,为了检验求解一元二次方程ax2+bx+c=0的程序(见第四章例4.14)是否正确,我们可以输入以下四组a,b,c的数值:第一组:0,1,1预期结果:显示“不是二次方程”第二组:1,-2,1预期结果:x1=1,x2=1(两个相等实根)第三组:1,1,-2预期结果:x1=1,x2=-2(两个不等实根)第四组:1,2,2预期结果:x1=-1+i,x2=-1-i(两个共轭复根)动态检查中,通常在一些敏感点处设置断点,检查一些变量或表达式的值。,使用“调试”菜单或“调试”工具栏1.切换断点“切换断点”按钮用来设置断点2.逐语句VB允许逐条语句执行程序,每执行一条语句后就返回中断模式。如果执行的是过程调用的代码(如Call),“逐语句”操作也会跟踪到被调过程中继续一条语句一条语句的执行3.逐过程逐过程执行是以整个函数或过程为一个整体,一次执行。逐过程与逐语句一样,能够一条语句一条语句地执行代码。把被调用的函数或过程当作一个语句来看待,9.3.2使用VB调试工具,,4.跳出单击“调试”工具栏上的“跳出”按钮,则VB将连续执行完该过程的其余部分,返回调用过程的下一条语句并回复中断模式5.本地窗口显示当前过程中所有变量和活动窗体的所有属性值Me代表当前窗体;单击“+”号或“-”号6.立即窗口可以检查某个属性或者变量的值,也可以对表达式求值,或为变量或属性赋值等7.监视窗口对用户定义的表达式进行监视,,,,,,,,,,,,,,,,,,,,,,,,,,,2019/12/16,13,可编辑,例9.1运行以下的窗体装载事件过程:PrivateSubForm_Load()Dima%a%=5:a=5.4c=1/(a-a%)EndSub运行时出错,消息框提示发生“除数为零”的错误。单击消息框中的“调试”按钮,即可进入中断模式,VB在代码窗口中用箭头指示发生错误的语句“C=1/(a-a%)”。在立即窗口中键入以下命令来检查变量的值:?a,a%?是Print的简写出错前变量a的当前值为整数5,而不是5.4,故发生了“除数为零”的错误,编写的程序代码如下:PrivateSubForm_Load()ShowDimtAsSingle,iAsSinglet=0Fori=0.1To1Step0.1t=t+iNextiPrint"总和:";tEndSub运行结果为:总和:4.5这不是正确的答案,正确结果应是5.5,例9.2计算t=0.1+0.2+0.3+……+0.9+1,利用调试工具来查找出错原因,操作步骤如下:(1)在代码窗口中设置断点。为了了解循环过程中变量i和t的变化情况,可在语句t=t+i处设置断点。,(2)重新运行程序。程序在断点处中断运行,进入中断模式,(3)单击“调试”工具栏上的“本地窗口”按钮,利用本地窗口来监视过程中各量及属性值的变化情况,(4)单击“调试”工具栏上的“逐语句”按钮,让程序单步执行。“本地窗口”会显示出程序中所用变量的当前值。(5)连续单击“逐语句”按钮,使程序在For语句循环执行9次,此时本地窗口显示的变量值如图9.7所示,(6)再次单击“逐语句”按钮。程序不再继续循环,而是退出循环,去执行Nexti下一个的Print语句。可以发现上述循环语句只是循环9次。本来应该循环10次,但由于小数点在机器内存储和处理会发生微小误差,当执行到第9次循环时,循环变量i的值为0.9000001,再加上步长值0.1时,已经超过1,往下就不再执行循环体了。所以实际上才循环9次,即只计算0.1+0.2+0.3+…+0.9(=4.5)当步长值为小数时,为了防止丢失循环次数,可将终值适当增加,一般是加上步长值的一半,例如:Fori=0.1To1.05Step0.1调试程序往往比写程序更难,由于应用环境等的改变,有时程序还会出现错误。例如文件未找到等。这类“运行时错误”并非致命的错误。对于这些可预见的错误,可以利用VB的错误处理程序捕获它,对其进行适当的处理,并使程序继续执行。这样就能够使开发的软件具有更强的适应性。9.4.1错误处理的步骤(1)利用Err对象记录错误的类型、出错原因等。(2)强制转移到用户自编的“错误处理程序段”的入口。(3)在“错误处理程序段”内,根据具体错误进行处理,如果问题有解决方法,则在处理后返回原程序某处继续执行,否则,停止程序执行,9.4错误处理,Err对象是全局性的固有对象,用来保存最新的运行时错误信息,其属性由错误生成者设置1.主要属性(1)Number属性:为数值类型,范围为0~65535,保存错误号。(2)Source属性:为字符串,指明错误产生的对象或应用程序的名称。(3)Description属性:为字符串,用于记录简短的错误信息描述。2.常用方法(1)Clear方法:用于清除Err对象的当前属性值。(2)Raise方法:产生错误,用于调试错误处理程序段。例如,执行语句Err.Raise55将产生55号运行时错误,即“文件已打开”错误,9.4.2Err对象,使用OnError语句可以捕获错误,其语法格式如下:OnError标号通常,该语句放置在过程的开始位置。在程序运行过程中,当该语句后面的代码出错时,则程序就会自动跳转到标号所指定的程序行去运行标号所指示的程序行通常为错误处理程序段的开始行一个使用错误处理的示例:OnErrorGoToErrLine‘以后出错时转移至ErrLine...ErrLine:‘标号...Resume‘返回语句,9.4.3捕获错误语句(OnError),当指定的错误处理完成后,应该控制程序返回到合适的位置继续执行。返回语句Resume有三种用法:(1)Resume[0]:程序返回到出错语句处继续执行。(2)ResumeNext:程序返回到出错语句的下一语句。(3)Resume标号:程序返回到标号处继续执行。,9.4.4退出错误处理语句(Resume),输入某个数,求该数的平方根。当用户输入负数时,使用OnError...Resume进行处理PrivateSubForm_Load()DimxAsSingle,yAsSingle,iAsStringOnErrorGoToerrln以下出错时转移到errlnShow:i=""‘i为实数标记x=Val(InputBox("请输入一个数"))y=Sqr(x)Printy;i:ExitSub‘显示及退出过程errln:标号IfErr.Number=5Then本错误的错误码为5x=-x转换为正数i="i"复数标记Resume返回Else其他错误处理MsgBox("错误发生在"&Err.Source&",代码为"&_Err.Number&",即"&Err.Description)EndEndIfEndSub,例9.3错误处理程序示例,程序运行时,当用户输入一个正数时,则显示出该数的平方根;如果输入的是一个负数,则因求负数的平方根(通过函数Sqr())而出错,此时会跳转到错误处理程序段。在错误处理程序段中,先判断错误码,若是5(即发生求负数的平方根的错误),则将该负数转换为正数,设置复数标记,然后执行Resume语句返回到原出错处继续执行。如果发生的不是错误5,则显示有关信息后强制结束,

展开阅读全文

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计,皆可应用在项目、毕业设计、课程设计、期末/期/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
各种安全相关思维导图整理收集。渗透步骤,web安全,CTF,业务安全,人工智能,区块链安全,数据安全,安全开发,无线安全,社会工程学,二进制安全,移动安全,红蓝对抗,运维安全,风控安全,linux安全.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计,皆可应用在项目、毕业设计、课程设计、期末/期/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值