永发信息网

vb6.0 遇到错误能不退出吗

答案:4  悬赏:40  手机版
解决时间 2021-01-26 22:43
  • 提问者网友:几叶到寒
  • 2021-01-26 10:48
vb6.0 遇到错误能不退出吗
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-01-26 10:56
插入以下代码:
On Error Resume Next
即可。意思是,程序遇到错误不理会,继续执行。

或者使用GoTo,比如下面的代码计算肯定是溢出的,但程序不会退出,不过会提示:
On Error GoTo ToExit
Dim g, ErrNum As Boolean
g = 1
Do Until ErrNum
g = g * 1024
Loop
ToExit:
If Err.Number = 6 Then
Print "程序溢出,计算结果不准确", g
Exit Sub
End If

或者使用以下代码,可以完全显示计算过程:
Dim WithEvents List As ListBox

Private Sub Form_Load()
On Error GoTo ToExit
Dim g, ErrNum As Boolean
g = 1
Set List = Me.Controls.Add("VB.ListBox", "List")
With List
.Left = 0
.Top = 0
.Width = Form1.Width - 240
.Height = Form1.Height - 490
.Visible = True
End With
Do Until ErrNum
g = g * 1024
List.AddItem g
Loop
ToExit:
If Err.Number = 6 Then
List.AddItem "程序溢出,计算结果不准确" & g
Exit Sub
End If
End Sub追问是不是要在每一个容易出错的sub里面都要这样加一下?有没有整体设置一下或者写代码的?每个sub都写一下也挺麻烦的追答首先,第一行是每个里边都需要有的,有了这一行,才会执行错误跳转。

比如上边的第二段代码也可以这样写:这样在每段容易出错的过程中,加上第一个的On Error GoTo ToExit和最后一行的ToExit: MsgBox "程序出现错误!" & Chr(10) & "错误类型:" & Error(Err.Number), 16即可。当然,你需要在Esub这个子过程中,把所有可能会涉及到的错误代码都添加上。如果只想知道哪里错了,也可以直接提醒,出错也是可以的

Private Sub Form_Load()

On Error GoTo ToExit

Dim g, ErrNum As Boolean
g = 1
Do Until ErrNum
g = g * 1024
Loop

ToExit: MsgBox "程序出现错误!" & Chr(10) & "错误类型:" & Error(Err.Number), 16

End Sub
全部回答
  • 1楼网友:洒脱疯子
  • 2021-01-26 13:50
private sub ........
On Error GoTo 例如aa
.
.
.(代码)
aa:
end sub
  • 2楼网友:街头电车
  • 2021-01-26 12:20
使用错误处理
on error resume next
写在有可能出错过程的第一行
  • 3楼网友:过活
  • 2021-01-26 12:00
在可能产生错误的函数开头,用On Error Goto xxx来跳转错误,然后在xxx程序行进行错误处理,例如:
sub chu(fenmu as integer,fenzi as integer) as single '一个除法过程,参数是分母和分子)
on error goto errline
chu=fenzi/fenmu '做除法
exit sub '退出过程
errline: '错误处理,这样就不会因为被除数=0而导致程序退出
msgbox "溢出,请检查参数是否正确"
chu=0
end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯