【发布时间】:2012-02-29 22:57:15
【问题描述】:
应用程序在从数据库中获取数据时应该期待意外吗?假设我们在列(int 或 text)中存储了一个枚举值。当我们从数据库返回值时,我们将值转换为枚举类型。如果有人手动更改了数据库中的数据,破坏了数据完整性,所以我们的演员阵容失败了怎么办?
另一个例子是当 c# 中的数据类型的范围小于数据库中的等效字段时。如果有人手动输入这个值,比如说数据库最大值,那么应用程序会抛出超出范围的异常。
我们应该以及如何处理这种异常?
编辑:由于大多数答案都是相似的,我将重新表述这个问题。暗示应用程序中存在异常日志记录。问题是:当用户查询某些数据时,如果数据损坏(不是来自应用程序的 CRUD 操作,而是来自外部),从数据库到模型的数据转换将失败,用户将一无所获。应用中出现这样的状态是否可以接受,因为不是应用本身造成的?
验证数据会大大降低数据获取速度。假设您需要检查每个十进制值是否超出范围?
【问题讨论】:
-
您应该通过对执行此操作的人进行去皮和羽化处理来处理此问题。 Cat-O-Nine 是一种被广泛接受的替代品,可避免焦油对环境的影响。
标签: c# mysql database sql-server-2008