最近做毕业设计,用动软代码生成器生成DbHelperSQL.cs文件,生成网站是成功,但是在修改的时候就出现 用户代码未处理Exception 显示throw new Exception(ex.Message);第一行:throw new Exception(ex.Message);
代码如下:
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message); //此句错误 }
return ds;
}
}
public static DataSet Query(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.SelectCommand.CommandTimeout = Times;
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
代码如下:
/// <summary>
/// 执行查询语句,返回DataSet
/// </summary>
/// <param name="SQLString">查询语句</param>
/// <returns>DataSet</returns>
public static DataSet Query(string SQLString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message); //此句错误 }
return ds;
}
}
public static DataSet Query(string SQLString, int Times)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
command.SelectCommand.CommandTimeout = Times;
command.Fill(ds, "ds");
}
catch (System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
return ds;
}
}
解决方案 »
- Cookies 转 Session
- ajax无刷新聊天室问题
- 极其简单的问题
- 利用asp.net ,在B/S模式下,如何利用短信猫群发短信!
- 关于Rss抓取问题,为什么抓虾的Rss更新那么快?讨论贴
- .net初学者的几个问题。
- asp.net用户登陆后,aspnet_Users表中的LastActivityDate字段的时间不对.
- asp小白求大神指教 输入字符串的格式不正确。
- 很菜的問題
- 我以前没学过asp,vb;只学了VC,现在想学asp.net,请问asp.net用什么作为开发工具?用frontpage可以吗?应该看那方面的书好?有何推荐?
- 后台如何获取页面的div标签,并设置其属性
- C#\.net如何实现给PDF文件添加文字水印
{
throw new Exception(ex.Message); //此句错误
}你这里已经捕获到SqlException了,所以这个时候你需要做处理,比如提示信息等,而不能将异常再往外抛,因为找不到处理该异常的对象了。
打个比方,在学校里,你是班长,老师安排给你个任务,让你找个同学做一件事情,你找到一个同学,然后告诉他怎么怎么做,这个时候那个同学就是你这里捕获到的SqlException异常,这个同学需要处理了,去做这件事情,而不是这个同学再将这个事情再抛出去,因为没有其他同学来接,因为是分配给你的,必须由你来处理。
============》修改成catch(Exception ex)
{
throw new Exception(ex.Message);
//
MessageBox.Show("出现异常:"+ex.Message);
}
即使这样层层将异常抛出,总得有人解决啊.
必须将异常的详细信息写到log里,即用exception.ToString()方法,而不能用Message属性,那样没有错误堆栈信息。
可以一层层地向外抛异常,一直到ui层才显示给用户一个友好的出错信息,但那也不应该是异常的Message。
楼主的代码里throw new Exception(ex.Message);丢失了堆栈信息,是错误的做法。