【发布时间】:2011-09-10 23:26:16
【问题描述】:
如果我这样做:
DataSet ds = GetMyDataset();
try
{
string somevalue = ds.Tables[0].Rows[0]["col1"];
}
catch
{
//maybe something was null
}
有没有不使用 try/catch 来检查空值的好方法?只是我不在乎“col1”中的值是否为空,或者“col1”不存在,或者没有返回的行,或者表不存在!
也许我应该关心? :) 也许 try/catch 是解决这个问题的最佳方法,但我只是想知道是否还有其他方法可以做到这一点?
谢谢!
【问题讨论】:
-
首先,不要做一个通用的
catch。这是一种可怕的做法。捕捉您正在寻找的错误。 -
同意。它只是作为示例抛出,但它有点相同 - “不要使用错误处理来捕获不是真正错误的东西”。我只是在寻找与此问题相关的任何 C# 技术/关键字。
-
Maybe monad 在这里似乎是个好东西。 codeproject.com/KB/cs/maybemonads.aspx