为了账号安全,请及时绑定邮箱和手机立即绑定

VBA错误处理的好模式

VBA错误处理的好模式

qq_花开花谢_0 2019-08-30 17:31:10
VBA中的错误处理有哪些好的模式?特别是在这种情况下我应该怎么做:... some code ...... some code where an error might occur ...... some code ...... some other code where a different error might occur ...... some other code ...... some code that must always be run (like a finally block) ...我想处理这两个错误,并在可能发生错误的代码之后恢复执行。此外,最后的代码必须始终运行 - 无论先前抛出什么异常。我怎样才能达到这个目的?
查看完整描述

3 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

我还要补充一下:

  • 全局Err对象是您与异常对象最接近的对象

  • 你可以有效地“抛出异常” Err.Raise

而且只是为了好玩:

  • On Error Resume Next 是魔鬼的化身和被避免,因为它默默地隐藏错误


查看完整回答
反对 回复 2019-08-30
?
湖上湖

TA贡献2003条经验 获得超2个赞

所以你可以这样做


Function Errorthingy(pParam)

On Error GoTo HandleErr


 ' your code here


    ExitHere:

    ' your finally code

    Exit Function


    HandleErr:

        Select Case Err.Number

        ' different error handling here'

        Case Else

            MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, "ErrorThingy"

        End Select



   Resume ExitHere


End Function

如果你想烘焙自定义异常。(例如违反业务规则的那些)使用上面的示例,但使用goto根据需要改变方法的流程。


查看完整回答
反对 回复 2019-08-30
  • 3 回答
  • 0 关注
  • 723 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信