编写软件调试之后、交付之前,是不是应该到处加上onerror resume next?

unsv29mj 2009-10-30 09:19:48
因为我发现有时候软件里面的笔误有时会存在,但是测试的时候不一定能测试到。所以问下:

大家都是怎么弄的,是不是加上onresum next ?免得软件崩溃,在客户面前丢面子!

大家都是怎么弄的?

多谢!!!
...全文
435 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2009-11-05
  • 打赏
  • 举报
回复
可以设置On Error GoTo 语句,捕获错误。而且最好有,这样代码严谨
chenhui530 2009-11-05
  • 打赏
  • 举报
回复
掩耳盗铃
Tiger_Zhao 2009-11-05
  • 打赏
  • 举报
回复
编程:
正常操作必定/可能发生的错误必须对应。
所有不可预期的错误都必须捕获并提示,提示信息必须能够直接定位发生错误的代码行,最好还要有出错时的各种状态信息。

测试:
编程只占软件开发总工作量的 1/3~1/4,合格的软件至少要用 1/3 以上的工作量进行各个阶段的测试。
自己进行集成测试时至少保证代码覆盖率(除不可预期的错误处理以外 100%)。
fzx4936 2009-11-05
  • 打赏
  • 举报
回复
程序开发完之后 详细的测试是必不可少的,绝对不是一句"测试的时候不一定能测试到"就能说得过去的
必须有详尽的测试方案
不然IT界里就不会有测试工程师这个职业了
Siramizu 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 getemail 的回复:]
可以用
on error goto aaa
'这里写代码


aaa:
msgbox "出现编号为 & "Err.Number & "的错误,请联系..."
[/Quote]我们就是用这样的
舉杯邀明月 2009-11-05
  • 打赏
  • 举报
回复
我觉得这样做比较好:
  用 On Error GoTo 捕获异常,并根据对异常的判断,按不同的情况分别进行容错处理,再让程序继续运行或终止当前操作(终止操作时要提示用户一些必要的信息);对严重的未预料异常则提示用户“在进行XXX操作时出现XX错误,请联系XXXXXX进行咨询(或:请将XXXXX(信息)反馈到XXXX,............)”,商业软件应该带上一些致歉的话语。
unsv29mj 2009-11-04
  • 打赏
  • 举报
回复
没人say了?
linc_M 2009-11-04
  • 打赏
  • 举报
回复
养成好习惯。多写注释。
threenewbee 2009-11-04
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 a373903757 的回复:]
每一个程序都有一定的错误,没有完美的程序,如果有,为什么游戏要更新后又更新呢,就是为修复BUG而来的!
所以我们也不可能说避免错误,只可以说的是尽量吧!在打下每一句代码时!!想一想会不会影响到其他方面的功能!!
所以说,编程序花最长时间就是维护!!
慢慢来吧!!有错误不要紧!!只要自己肯去修改!!不会说什么有面子没面子的!!
[/Quote]
错误、BUG和异常是不同的,VB用Error而不是Exception误导了很多人。
难道说"为什么游戏要更新后又更新"就是不断加入On Error Resume Next?
a373903757 2009-11-04
  • 打赏
  • 举报
回复
每一个程序都有一定的错误,没有完美的程序,如果有,为什么游戏要更新后又更新呢,就是为修复BUG而来的!
所以我们也不可能说避免错误,只可以说的是尽量吧!在打下每一句代码时!!想一想会不会影响到其他方面的功能!!
所以说,编程序花最长时间就是维护!!
慢慢来吧!!有错误不要紧!!只要自己肯去修改!!不会说什么有面子没面子的!!
波导终结者 2009-11-04
  • 打赏
  • 举报
回复
笔误有时会存在?
LZ没有强制声明变量吧,然后随手抓起一个没声明的变量就开始用,我就奇怪了,到时候你怎么查
threenewbee 2009-11-04
  • 打赏
  • 举报
回复
有时候软件里面的笔误有时会存在,但是测试的时候不一定能测试到

lz完全理解错误On Error Resume Next的用意了。

这里的Error不是软件编写的错误,而是运行时遇到的异常。
使用On Error不能减少软件的BUG,滥用只会引入新的BUG。。。

举几个例子:
(1)假设有如下的伪代码:
while getDatabaseConnect() = true
LoadData()
wend
如果数据库不可用,会丢出异常,那么使用On Error Resume Next会使得代码陷入死循环,程序瘫痪。
(2)有时候出现异常并非出错,而是正常情况,比如当comdialog设置cancelerr = true的时候,用户点击cancel,会产生一个错误,如果忽略掉,那么造成BUG——明明用户取消了,可是还在按照确定以后的代码走。
(3)有些异常难以避免,但是根本无须提示用户。给出警告会让用户觉得烦恼、或者觉得软件不可靠、或者浪费客服资源。
(4)对于编写系统函数库的开发者,对于并非本函数能够处理的异常,抛出去而不是吃掉才是正确的做法——不然调用者不知道函数返回的是否正确,如果没有机制去证实函数是否运行完成,只能使得程序变得不可靠,举例:
一个系统函数从串口读取设备温度,假设温度在-10~60为正常,否则要报警,代码如下:
Function GetTemp() As Long
On Error Resume Next
GetTemp = ReadComPortData()
end function
假设ReadComPortData()出现异常,那么这个代码返回0,但是这个0不同于代码正常的时候返回的0所表示的0摄氏度,而是一个无意义的初始值。我们的主程序如果不知道这个情况,可能程序是不会打断了,但是一场事故就要酿成了!!!
(5)异常本身也是调试程序、简化程序代码有时候利用的技巧,这个比较复杂,就不想细说了。

所以,lz千万要改变认识,增加On Error Resume Next根本不能减少程序的问题,只会引入新的BUG。
神马都能聊 2009-11-04
  • 打赏
  • 举报
回复
把错误从根源掐死……,不然你以后就要不停的放过错误。
getemail 2009-11-04
  • 打赏
  • 举报
回复
帮顶一下
dingyanwei 2009-10-30
  • 打赏
  • 举报
回复
我知道加入 on error resume next不是最好的方法,但我的确会加上,如果客户那边出了问题反馈时我会取消这个错误处理然后再模拟出错的操作过程,基本上都能找到。

崩溃确实不是一个好的现象,而完全避免错误也不太可能,所以,尽量保证客户在按照手册操作流程走是不会出错的就行了。
booksoon 2009-10-30
  • 打赏
  • 举报
回复
你要知道一点,没有不出错的程序~~~
getemail 2009-10-30
  • 打赏
  • 举报
回复
我也想知道别人都是怎么做
别急着结帖子,大家交流交流

[Quote=引用 6 楼 unsv29mj 的回复:]
多谢 楼上 期待更多的建议.......
[/Quote]
unsv29mj 2009-10-30
  • 打赏
  • 举报
回复
多谢 楼上 期待更多的建议.......
getemail 2009-10-30
  • 打赏
  • 举报
回复
做一个漂亮的帮助会使你很有面子
getemail 2009-10-30
  • 打赏
  • 举报
回复
是的是的

[Quote=引用 3 楼 leftie 的回复:]
VB codeonerrorgoto aaa'这里写代码exitsub'这句要加上,不然都会执行aaa这段aaa:
msgbox"出现编号为 &"Err.Number&"的错误,请联系..."
[/Quote]
加载更多回复(3)
内容概要:本文档为《PCI Express CEM Specification, Revision 5.0, Version 1.0》的技术勘误表(Errata),发布于2021年8月3日,共包含21项修订记录。主要针对原规范中的文本错误(TXT)、术语使用不当或格式问题进行修正,涉及信号定义、材料要求、尺寸参数、表格引用、注释说明等多个技术细节。部分修改明确了关键信号如SENSE0/SENSE1的使用条件,调整了连接器测试夹具推荐做法,并统一了术语表述以避免歧义。所有修订均经过CEM工作组讨论确认,其中多数已被采纳(绿色标记),个别仍需进一步讨论(橙色标记)。; 适合人群:从事PCIe接口设计、高速电路开发、硬件合规性测试的工程师及相关技术人员;熟悉PCIe标准并参与硬件产品开发的1-3年经验研发人员。; 使用场景及目标:①帮助开发者准确理解PCIe CEM规范中关于高功率连接器、边带信号、PCB布局等关键技术要求;②指导硬件设计与测试过程中规避因文档歧义导致的实现错误;③确保产品符合最新规范版本的电气与机械设计标准; 阅读建议:此资源为规范性文件的补充修正,建议结合原始CEM Specification文档对照阅读,重点关注标红、标绿和标橙的反馈状态,及时更新设计依据,并在实际项目中验证相关修改项的应用一致性。
内容概要:本文是一份针对全国计算机等级考试(NCRE)二级的全面备考指南,覆盖MS Office高级应用与设计、C语言程序设计和Python语言程序设计三大主流科目。文档按照“认知→题库→实战→冲刺”四步递进结构组织,系统介绍了考试基本信息、报名时间、考试形式、合格标准及科目选择建议,并深入剖析各科高频考点、真题规律与操作技巧。重点内容包括MS Office中的Word长文档排版、Excel函数应用与PPT动画设计;C语言中的指针、数组、函数及程序调试;Python中的基础语法、标准库(如turtle、random)与第三方库(如jieba、wordcloud、matplotlib)的应用。此外,还提供公共基础知识精讲、操作题逐步教学、易错题集锦、模拟软件使用指南和科学的时间管理策略,帮助考生高效备考。; 适合人群:零基础小白、临考突击型考生以及多次未通过的考生,尤其适合非计算机专业希望提升办公技能或理工科学生准备编程语言认证的学习者。; 使用场景及目标:①系统掌握NCRE二级考试所需的知识与实操技能;②通过刷真题、模拟考试和错题复盘提高应试能力;③在短时间内实现从入门到通关的跨越,一次性通过考试。; 阅读建议:建议按文档顺序逐步学习,结合官方考纲和真题进行实践操作,重视动手练习而非仅理论阅读,临考前使用模拟软件全真演练,强化时间分配与答题策略。

7,788

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧