properties - 属性中的 VB6 错误处理 -> 最佳实践?

标签 properties error-handling vb6

我正在使用 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/

相关文章:

objective-c - 尝试从属性中获取 CGColor 值会导致崩溃

C# 4.0 : Are there ready-made, 线程安全的自动实现属性?

C# 相关构造函数和属性

iOS swift : Parse Invalid Session Token Error

c# - GetDC(0&) 是什么意思?

Javascript - 检查对象属性存在时避免异步竞争条件

exception - Azure数据工厂复制事件错误记录异常处理

error-handling - Silex - 如何将请求 $request 传递给 $app->error(function (\Exception $e, $code) use ($app) {

sql-server - SQL SERVER 2008 Select 语句

sql - 在 Access 查询中将文本字段转换为日期/时间字段不起作用