Substring方法引发的0xc0000005错误,微软请告诉我哪里错了,还是你错了
调试程序错误提示:托管调试助手 "FatalExecutionEngineError":“运行时遇到了错误。此错误的地址为 0xe291ae61,在线程 0x22ad0 上。错误代码为 0xc0000005。此错误可能是 CLR 中的 bug,或者是用户代码的不安全部分或不可验证部分中的 bug。此 bug 的常见来源包括用户对 COM-interop 或 PInvoke 的封送处理错误,这些错误可能会损坏堆栈。”
如果该错误发生在发布后的(EXE)项目中,肯定不可捕获,并导致程序关闭。代码如下,很简单,请告诉我哪里错了。
Dim i As Integer
For i = Len(tempfurl) To 1 Step -1
If tempfurl.Substring(i - 1, 1) = "/" Then ‘此行提示上述不可捕获错误
temp = tempfurl.Substring(0, i) & temp
Exit For
End If
Next
局部变量如下:
tempfurl="http:||s.weibo.com/weibo/%25E6%2596%25BD%25E7%2594%25B8&nodup=1×cope=custom:2017-11-29-9:2017-11-29-10"
i=47
补充:以上代码在多线程下运行,次错误应为偶发,但必然导致exe关闭,这又何垃圾回收有关系?我在出错代码前一行加上下方代码有意义吗?不得已为之
Dim i As Integer
For i = Len(tempfurl) To 1 Step -1
If IsNothing(tempfurl) = True OrElse Len(tempfurl) < i Then Exit For '加上这句有意义吗,不得已为之
If tempfurl.Substring(i - 1, 1) = "/" Then
temp = tempfurl.Substring(0, i) & temp
Exit For
End If
Next