在我们的应用程序中,我们将允许用户使用其他数据库列的数字输入算术表达式 (+ - * /),然后应用程序对其进行解析并作为计算列写入数据库。
但是,允许用户创建可能导致表异常的表达式会出现一些问题select *
,例如被零除、算术溢出以及我尚未遇到的其他可能的问题(尽管我认为这就是全部他们)。
让数据库抛出异常select *
绝对是毁灭性的。如果他们有容易出错的数据,我宁愿尝试将他们的表达式重写为优雅地失败的东西。
对于除以零,解决方案非常简单:
add [Col] as case {divisor} when 0 then N'DIVIDE-BY-ZERO' else {expression} end
我的问题是我该怎么做算术溢出?在列中显示双层或明显错误的数据不是问题,但抛出异常会。