代码之家  ›  专栏  ›  技术社区  ›  HardCode

验证类数据

  •  0
  • HardCode  · 技术社区  · 15 年前

    当前,如果名称字段太大,验证代码将引发自定义异常。(用户界面捕获自定义异常时,将在MessageBox中显示自定义异常消息,而不是常规异常的通用错误表单。)验证类位于应用程序的类库中,作用域为Friend。流程如下所示:

    • WinForms(调用)使用的DLL的公共服务层-->好友验证层

    简化示例:

    Public Shared Sub CreateCustomer(cust as Customer)
        Validation.Customer.ValidateForCreate(cust) ' scoped as Friend
        Dal.Customer.Create(cust) ' scoped as Friend
    End Sub
    

    只是从验证层返回True/False,让服务层将True/False冒泡到UI,并显示失败内容的字符串消息,这样的设计是否更好?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Yuval    15 年前

    AFAIK异常机制实际上是OOP方法论的核心,并且在编程语言中内置异常机制的地方实际上是受到鼓励的。我想说,让您的验证抛出一个自定义异常是一件非常好的事情,特别是如果您有几个自定义异常(NameTooLongException,NameIncludeNonStandardCharactersException…),这些异常是自文档化的,并且很容易被未来的代码维护者读取。

    一旦异常到达服务层,您就可以决定是捕获并处理它(这取决于您的业务逻辑),还是让它一直到达UI。如果异常包含一条有意义的错误消息,并且该消息总是合适的,那么让UI向用户显示它可能不是一个坏主意。(请记住,您可能希望在某个时候将应用程序国际化,在这种情况下,消息需要使用正确的语言。)

    希望这能有所帮助。。。