【问题标题】:What is the difference between data validation and exception handling? [closed]数据验证和异常处理有什么区别? [关闭]
【发布时间】:2014-10-21 15:14:10
【问题描述】:

我的问题可能很基础,但我想了解数据验证和异常处理之间的核心区别,以及何时应该使用这两者。

有人告诉我,除非绝对必要,否则永远不要在代码中使用异常处理,因为异常会使代码复杂化。但是,try-catch-finally 语句(异常处理)不是分离业务逻辑和 UI 的好方法吗?验证用户输入和在 UI 中显示错误消息时的最佳做法是什么?

【问题讨论】:

  • 您能否向我解释一下您认为 try-catch 语句如何将业务逻辑和 UI 分开?另外,这个问题太宽泛了,有人真正能给你的唯一答案是“这取决于。”
  • 我背后的逻辑是,在您的业务模型中,您将拥有 try-catch 语句,然后如果有一些无效(发生异常)您会将消息传递给 UI 并将其显示给用户。
  • 这不是问的正确地方,因为这不是您遇到的特定问题。在这里试试:programmers.stackexchange.com
  • DV 检查用户输入或导入数据是否有效以避免异常;异常处理忽略了这一点,然后在使用错误数据(Null ref,Div Zero)时捕获异常并试图找出问题所在以及发生了什么以及为什么
  • 谢谢,我会发到这个网站上的。

标签: c# error-handling separation-of-concerns


【解决方案1】:

数据验证是指在执行可能失败的操作之前检查数据,例如在进行除法之前检查 0。

异常处理意味着如果操作失败(例如,如果数据库查询超时)的明确定义的行为。

如何在拖车之间进行选择取决于您在做什么。虽然使用异常处理来捕获 0 devisor 并不优雅,因为您之前可以轻松地检查它,但您必须对与其他资源通信的操作使用异常处理(数据库查询或 TCP 套接字将失败,甚至磁盘将出现故障)空间)。

【讨论】:

  • 什么是数据验证最佳实践?我以前在学校做过,但那是我只有一个班级申请的时候;现在我正在使用更多类,我想创建一个验证类来执行我的所有数据验证。如果数据无效,向用户展示信息的最佳方式是什么?
  • 如果你使用类来包含要处理的数据,你可以在类中实现一个验证方法,这样数据和验证数据的业务逻辑将在同一个地方。
猜你喜欢
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 2013-08-11
  • 1970-01-01
  • 2011-03-14
  • 1970-01-01
  • 2021-10-01
  • 2010-12-16
相关资源
最近更新 更多