【发布时间】:2013-10-31 15:22:34
【问题描述】:
我有以下代码:
try
{
connection.Open();
da.Fill(ds);
DataRow item = ds.Tables[0].Rows[0];
byte[] item1 = (byte[])item["FileImage"];
ds.Tables.Clear();
numArray = item1;
}
catch (Exception ex)
{
throw ex;
}
finally
{
connection.Close();
}
return numArray;
}
我的代码通过将 GridView 中的 ID 传递到 SQL 语句中来工作,以便找到与存储在表中的 ID 关联的相应 FileImage。我最近注意到,如果我手动输入了错误的 ID,网站会崩溃并抛出异常“位置 0 处没有行”,我发现这基本上意味着没有数据可以获取(显然是因为我输入了假 ID)。
我的问题是如何处理这个错误?我以前从未真正考虑过错误处理,但我想从我读到的内容中我会做一些诸如 if 语句之类的事情?基本上,如果没有异常,则继续,但如果有异常,则可能将我页面上的 TextBox 的文本更改为错误消息,告诉用户“警告! ID 无效?
感谢您的帮助!
【问题讨论】:
-
旁注:将
try/catch/finally替换为using块。 (msdn.microsoft.com/en-us/library/yh598w02.aspx)。另外,不要重新抛出新异常,只需使用throw;(stackoverflow.com/questions/178456/…)。 -
if(ds.Tables[0].Rows.Count == 0)不要操作 -
另一个旁注:您不需要打开或关闭与
DataAdapter.Fill的连接。如果你不打开它,连接将被打开并隐式关闭。 -
感谢大家的帮助,在我选择答案之前先尝试一下这些解决方案
标签: c# asp.net arrays error-handling