vb 堆栈溢出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb 堆栈溢出相关的知识,希望对你有一定的参考价值。
用on error resume next 语句解决可以吗?
最后我加了一个timer控件,发现不再溢出了,但我想,或许是数量上还达不到才会这样吧.
看来vb这程序,真的是不能让人省心呀.
原来的程序是这样的:
A CALL B,但确判断数量,如果数量到了,则不再call
B CALL C
C CALL D
C CALL A
结果就数据溢出.
我用文本变化试了一下,结果也会溢出,而且本文控件值的变化,也无法稳定的获取值,并且也会造成卡屏白屏.
后来我用了timer控件,发现用timer控件开始A call,然后到C call结束.并且也配合了文本控件的值的验证与决定是不是循环.
这样问题解决了,但是我不知道,会不会再次出问题.
我用timer控件 进行文本控件内的值的状态监视--针对过程的循环是否开始,然后我不知道,这样是不是就真的解决了这个死循环,是不是真的把这个循环释放了.
虽然我改的过程中,从循环491次出错到600次出错,又到200次出错.
现在好似1040次也不出错,但是我不知道,这个timer控件的时间变化所触动的监视控件之文本值的变化,是不是能够破了这个溢出之死循环的根本问题.
因为我怕达到几十万数量时,它又跳出来一个溢出,那可能就真的很崩溃.
1、因为堆栈溢出意味着堆内存已耗尽,如果只是简单地用on error resume next语句忽略并继续向下执行,轻则程序运行会出现异常,重则会导致系统奔溃。
2、出现堆栈溢出,往往是因为对函数的递归调用不合理或使用递归算法不合适(应考虑使用其它算法替代)造成的,这属于编程上的逻辑错误,正确的做法应该是修改代码,排除逻辑错误。如果只是简单地忽略它,等同于主动为应用程序留下了一个可供别人攻击的堆栈溢出漏洞。
3、即便暂时无法修复代码,也应该以对话框或其它形式通知程序使用者发生了什么事情,由程序使用者来决定怎样处理,而不是简单地忽略它。 参考技术A 既然是错误的代码 执行了既有错误 也不能达到你原先的目的 你不如注释掉追问
我用
A CALL B
B CALL C
C CALL D
然后在D这里,触发一个文本变化的事件
然后引用文本变化事件再次完成循环触发A
这样会不会释放堆栈.
看具体代码才知道问题出在哪
如何解决SqlDateTime 溢出
我在上传中学生体质健康数据到广东省体质健康网时,出现“SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间 ”这个错误。
我应该怎么解决。我本人急啊。先谢谢大家了。
以上是关于vb 堆栈溢出的主要内容,如果未能解决你的问题,请参考以下文章