我正在处理一个通用类,并且正在处理错误。我在出现错误的地方使用 try catch
。问题是,如何将该错误返回给调用方法?
public static DataTable GetData(string connString, string sqlStatement, Action<iDB2ParameterCollection> parameters)
{
DataTable dt = new DataTable();
using (iDB2Connection conn = new iDB2Connection(connString))
{
using (iDB2Command cmd = new iDB2Command(sqlStatement, conn))
{
conn.Open();
if (parameters != null) { parameters(cmd.Parameters); }
try
{
using (iDB2DataAdapter da = new iDB2DataAdapter(cmd)) { da.Fill(dt); }
}
catch (iDB2SQLErrorException e)
{
}
conn.Close();
}
}
return dt;
}
最佳答案
不在基类中捕获它!
我不喜欢在基类级别捕获和吞噬异常。
让您的派生类担心这些细节。
旁注(立场证据): 您会注意到,在几乎任何 API 中,文档都会报告类将抛出哪些异常。如果他们在基类中捕获它们,他们实际上已经吞噬了它们,使您作为所述类的用户变得无助。
其他文章:
...instead of writing our abstractions based on details, the we should write the details based on abstractions.
这是依赖倒置原则的核心内容。
看看这篇文章,了解在您的设计过程中需要考虑的一些非常好的事情,http://www.oodesign.com/design-principles.html
关于c# - 如何正确处理泛型类中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8857932/