我遇到几个有点“莫名其妙的错误”,看老师有何解释。
说下其中的一个:
最近一段时间在弄的一个工具软件,在执行这个过程时,会出现如下图的错误提示。
这个错误在开初“代码规模比较小”时并没有出现,随着功能的扩展,后来就出现了。
这个错误只有在IDE下运行会产生,编译后的EXE程序运行完全正常。
最初的代码都是象上面粉红色框中的那句的格式:
直接把运算结果赋值给labPross.Width(Label控件的宽度属性)
PROSSBAR_WIDTH 是一个常量,Long类型。
后来出现“错误”后,尝试改变成各种形式的“运算”,都无法消除这个错误提示。
出现提示时,点“调试”,代码执行中断,停在上图中红色框中那样的“运算”语句上。
这时再按键盘“F5”,它又可以直接继续运行。
上面的运算中:是否使用CDbl()函数、pw用Double类型还是Single类型,结果一样。
并且,这其中又包含一个“奇特”的现象:
这个过程中并不是所有的这种语句都会“错误”,有一些“步骤”的计算它并不会提示出错。
我的这个过程,加载的“进度指示”共有下图中的“几个指示点”:
最左边一列是“宽度系数”,右边两列,是两处调用入口出现的不同状态。
虚线表示“xx * PROSSBAR_WIDTH”时没出现错误提示,×则表示出现错误提示。
比如0.05,后面两个标记都是虚线,表示两个调用入口中都不提示错误;
0.06 标记×和虚线各有一个,表示在调用入口1中引起错误,而入口2则没有错误;
0.1、0.2、0.3等等几个,两个标记都是×,表示两个调用入口中,它都提示错误。
还要注意一个重点:
这个“错误”几乎是不可“重现”的,如果我另外新建一个工程,
采用类似的方式写代码,却并不会出现提示,而是“一切正常”!
因此也别说我的VB6或操作系统有什么问题。
就事而事的说,pw = xxx * PROSSBAR_WIDTH这样的表达式,
应该是最基本的赋值运算了,哪来的“复杂”之说!比这复杂N倍的运算表达式多着呢!
另外,同一个过程中,“相同形式”的语句,却有一些提示出错而有一些则不出错!
无论哪一点,都是“很荒谬”的现象…………