作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有时有一个函数会在某些情况下引发错误,而您想使用该函数,但是在您的特定用例中,导致引发错误的情况并不是真正的错误情况。例如,也许有一个从键值集中删除条目的函数,如果集合中没有这样的键,则抛出错误,如果有则返回删除的值。这在很多情况下都很好,但是在某些特定情况下,您想要删除某个条目(如果该条目存在),而您不在乎该条目是否不存在。
因此,要么乱扔代码,要么用多行“On Error”行:
' General error handling
On Error GoTo ErrorHandler
' Do some stuff
(...)
' Don't throw an error just because the key doesn't have an entry
On Error Resume Next
' Delete it if it's there
DeletedValue = Delete(Key)
' Go back to regular error handling
On Error GoTo ErrorHandler
' Do some more stuff
(...)
Public Function DeleteButDoNotThrowError(ByVal Key As String) As String
On Error GoTo ErrorHandler
DeleteButDoNotThrowError = Delete(Key)
Exit Function
ErrorHandler:
DeleteButDoNotThrowError = vbNullString
End Function
Public Function AbsorbErrorString(ByVal CallReturn As String, _
ByVal ErrorReturn As String) As String
On Error GoTo ErrorHandler
AbsorbErrorString = CallReturn
Exit Function
ErrHandler:
AbsorbErrorString = ErrorReturn
End Function
DeletedValue = AbsorbErrorString(Delete(Key), vbNullString)
最佳答案
不幸的是,除了传递代码以字符串形式执行之外,这是不可能的(如Daniel Cook所述)。
我只建议对第二个示例进行较小的调整,以减少样板代码。它虽然不多,但与VB6一样好。
Public Function SafeDelete(ByRef Key As String) As String
On Error GoTo ErrorHandler
SafeDelete = Delete(Key)
ErrorHandler:
End Function
Delete
引发错误,则SafeDelete仍保留其旧值,该值默认为空字符串。然后可以通过(现在为空)错误处理程序。另外,如果包装函数需要ByRef,则需要使用ByRef而不是ByVal来提高性能。 (据我的一些同事称,它还节省了不必要的字符串副本。)
关于vb6 - 吸收VB6中的错误的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13867683/
我正在思考如何使用 html 元素来做到这一点。 颜色没有什么特别的,所以我不需要把它们做成图像。请注意,文本是右对齐的。此外,颜色条从左侧上升到文本。 所以这可以通过让文本 float 在右侧,背景
我是一名优秀的程序员,十分优秀!