【发布时间】:2009-02-11 11:25:16
【问题描述】:
我在我的 VB6 应用程序中经常遇到这种情况
Private Sub DoSomething
On Error Goto err1
Call ProcessLargeBatch1
Call ProcessLargeBatch2
'... more ...'
Exit Sub
err1:
Call Cleanup 'Specific for DoSomething'
Call HandleError 'General error handling: Logging, message box, ...'
End Sub
清理过程有时会恢复操作、回滚事务、删除临时文件等。在大多数情况下,此操作也可能失败。
在这种情况下我该怎么办?我会在错误处理程序中添加一个On Error Resume Next,但这会删除现有的Err 对象。向Cleanup 添加错误处理程序也有同样的问题。
确保原始错误仍然得到处理/记录的最佳方法是什么?
编辑:另外一个问题是我还想将错误通知用户。有时重要的是,清理发生得很快,我不希望消息框长时间阻塞应用程序并在用户确认错误后进行清理。
【问题讨论】:
标签: vb6 error-handling