【发布时间】:2018-05-09 19:30:22
【问题描述】:
在我的项目中,我正在尝试编写易于理解的代码。 我目前将我的数据访问功能拆分为一个单独的类。
然而,我想要实现的是将错误捕获回我的表单。我目前没有得到这个,我想知道为什么。
在我的表单中,我有以下代码:
private void btn_Save_ItemClick(object sender, ItemClickEventArgs e)
{
if (dal.updatePerson(ObjectAfterSaving))
{
MessageBox.Show("Updated!");
}
else
{
MessageBox.Show("error");
};
}
在我的dal对象(派生自DataAccess_Person class)中,我有以下方法:
public bool updatePerson(Person p)
{
conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["Database"].ConnectionString);
SqlCommand command = new SqlCommand(@"UPDATE Person
SET PersonName = @PersonName
WHERE PersonID = @PersonID", conn);
command.Parameters.Add("@PersonName", SqlDbType.VarChar).Value = p.Name
{
try
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
int a = command.ExecuteNonQuery();
conn.Close();
if (a > 0)
{
return true;
}
else
{
return false;
}
}
catch (SqlException ex)
{
ex.ToString();
return false;
}
}
}
我的问题是:假设我的方法是否符合要求。我的前端(表单)会显示它(例如 Sql Exception)吗?还是我会得到“错误”?如果我只是得到错误,我如何改进我的代码以显示异常而不是错误?
【问题讨论】:
-
你的问题不清楚。您只想在
btn_Save_ItemClick中捕获异常吗?你想在updatePerson中捕获它然后再次抛出它以便你可以从调用者方法访问它吗?还是您只想将错误消息返回给调用方方法?另外请注意,您当前没有将ex.ToString()分配给任何变量。