【发布时间】:2015-09-13 09:49:34
【问题描述】:
我想将一个表中的列添加到另一个表中。 这里colName是字符串变量,是从开发者提供的硬编码参数中提取出来的。 所以 colName 不正确的可能性非常小。 我想避免由于 colName 错误而引发异常。
实现相同目标的最佳方法是什么? 我想到了以下两个选项。
if(_table.Columns.Contains(colName))
{
AddColumnToTable(_table.Columns[colName]);
}
或
try
{
AddColumnToTable(_table.Columns[colName]);
}
catch { }
【问题讨论】:
-
先测试后采取行动,比盲目行动后抓住要好。而且通常更快(如果可能的故障很常见)
-
AddColumnToTable()会抛出异常吗?如果没有,那么 try catch 将无济于事...... -
@Mivaweb 我会说它更像是一个
_table.Columns[]抛出。 -
我同意@xanatos。值得注意的例外是竞争条件,例如:
if (File.Exists(f)) File.Delete(f). -
Eric Lippert 有一个great article on exceptions。这将属于“愚蠢”,
标签: c# if-statement try-catch clr