【发布时间】:2018-10-17 16:55:16
【问题描述】:
我们遇到了一个 Access 前端的问题,它看似随机但不断地让用户超时而没有任何解释。这是一个长期存在的问题,每次发生断开连接时,我们都会收到导致问题的子程序和一般错误消息。
我开始认为该错误消息具有误导性,它给出了一个错误代码为 0 的通用“连接失败”。在谷歌上搜索显然意味着没有发生错误的代码后?
我用的是C#而不是VBA,所以不太熟悉,但是错误处理如下:
Private Sub Form_Timer()
Dim blnSystemMaintenance As Boolean
On Error GoTo ErrHand
' Check for System Maintenance.
blnSystemMaintenance = DLookup("SystemMaintenance", "ConfigItems")
If blnSystemMaintenance Then
//Do stuff
Else
//Do stuff
End If
//Do stuff
End If
ErrExit:
Exit Sub
Resume
ErrHand:
' If Err.Number = 1 Then
' Else
MsgBox "Error number: " & Err.Number & vbCrLf & _
"Error description: " & Err.Description, vbCritical, _
"Unexpected Error Occurred in Sub: Form_Timer"
Resume ErrExit
' End If
End Sub
有没有办法获得更有用的错误消息?
【问题讨论】:
-
你可以在里面放行号,但是很复杂。
-
行号是什么意思?就像返回错误行一样?我希望更多的是某种适当的异常消息,而不仅仅是“连接失败”
-
如果您的代码调用其他程序,所有这些程序也应该有错误处理程序,否则,来自这些程序的错误将被“冒泡”,直到到达带有错误处理程序的代码并且错误代码/消息将是完全误导。
-
它打开另一个表单,但是它打开的表单中的每个子都有自己的错误消息,通知用户哪个子失败,所以我认为那里应该没问题