我正在使用 CodeSmart 2013 来分析我的 VB6 项目。 审查功能说我应该将错误处理(或至少“下一步错误恢复”)添加到我的类属性中。
我的属性通常如下所示(99% 的情况下):
Public Property Let PLZ(ByVal strPlz As String)
myStrPLZ = strPlz
End Property
Public Property Get PLZ() As String
PLZ = myStrPLZ
End Property
当我自动添加错误处理时,它看起来像这样:
Public Property Let PLZ(ByVal strPlz As String)
'<EhHeader>
On Error GoTo PLZ_Err
'</EhHeader>
myStrPLZ = strPlz
'<EhFooter>
Exit Property
PLZ_Err:
MsgBox Err.Description & vbCrLf & _
"in TNV.frmSucheTeilnehmer.PLZ " & _
"at line " & Erl, _
vbExclamation + vbOKOnly, "Application Error"
Resume Next
'</EhFooter>
End Property
Public Property Get PLZ() As String
'<EhHeader>
On Error GoTo PLZ_Err
'</EhHeader>
PLZ = myStrPLZ
'<EhFooter>
Exit Property
PLZ_Err:
MsgBox Err.Description & vbCrLf & _
"in TNV.frmSucheTeilnehmer.PLZ " & _
"at line " & Erl, _
vbExclamation + vbOKOnly, "Application Error"
Resume Next
'</EhFooter>
End Property
有人在属性中实际进行错误处理吗? 这是最佳实践吗?因为这会给我的项目带来很多额外的代码(恕我直言,代码概述会减少)
感谢帮助! 来自德国的问候 斯利姆克
最佳答案
您应该以与在任何方法(子/函数)中相同的方式添加错误处理。
我的经验法则是,如果该方法只有几行长并且不执行任何异常操作,则不需要进行错误处理。对于属性 Get/Set 也是如此
是的,向所有属性 getter 和 setter 添加错误处理会生成大量代码,因此一种选择是使用集中式错误处理。有关于此的一些讨论,请参阅这篇文章:Centralized error handling in VB6
关于properties - 属性中的 VB6 错误处理 -> 最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514880/