我正在研究泛型类,正在处理错误.我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;
}
Run Code Online (Sandbox Code Playgroud)
通过不在基类中捕获它!
我不喜欢捕获和吞噬基类级别的异常.
让派生类担心这些细节.
附注(位置证据): 您会注意到,在几乎任何API中,doucmentation将报告将使用类引发的异常.如果他们要在基类中捕获它们,那么它们已经有效地吞噬它们,使得您无法像所述类的用户那样无助.
附加文章:
...而不是根据细节编写我们的抽象,我们应该根据抽象来编写细节.
这是依赖倒置原则的核心租户.
看看这篇文章,了解一些在设计过程中需要考虑的好东西,http://www.oodesign.com/design-principles.html