在Lambda上处理'System.DivideByZeroException'

时间:2014-03-31 20:42:22

标签: c# lambda

我有以下表达式;

MyResult = userRecords.Exists(
                    r => ((r.userDataOne + r.userDataTwo) / r.userLimit ) > 0.6m);

问题是我偶尔会得到一个System.DivideByZeroException'当userLimit为0时。

目前我唯一能看到的是Try / Catch或If语句。我已经尝试过寻找一个可以处理lambda语句并处理0的解决方案,我是不是已经使用了多个' if'声明?或者是否有更好的方法来处理这些类型的异常?

1 个答案:

答案 0 :(得分:4)

问题不在于userDataOneuserDataTwo。问题是userLimit

您可以尝试避免这样的记录:

userRecords.Where(r => r.userLimit != 0).Exists( ... )

或者像这样:

userRecords.Exists(r => r.userLimit != 0 && ((r.userDataOne + r.userDataTwo) / r.userLimit ) > 0.6m);