在asp.net中一般都回用到try catch finally这个黄金搭档来捕获程序的异常下面说说他的用法,下面用session举个例子:
![]()
Code
string name = TextBox1.Text.ToString().Trim();
try
{
name = Session["name"].ToString();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("错误类型:" + ex.Message + "");
HttpContext.Current.Response.End();
}
上面的代码是写在Page_Load里面!也就是说,只要打开页面他就会加载上面的代码因为session没有值传递过来,这样赋值的话肯定是会报错的!但是如果不用try catch的话整个页面就会瘫痪抛出异常,如果用了在运行的话他就会直接在页面上打印出错误类型:未将对象引用设置到对象的实例。其实上面的代码在实际应用中没上面用处的,但是当你try{}包含是一段对数据库操作的代码时这就体现出他的作用,数据库虽然日益完善,但是难保哪天他不出错,而导致insert、update、delete...等SQL语句出错,用try catch就不会抛出一堆一堆的错误信息给用户看,而且他还会帮助你找到错误源,
上面都说了try catch但是没说到finally,他的作用就是不管你try里的代码是否成功执行,他都会执行比如:
![]()
Code
string constr = "DRIVER={MySQL ODBC 3.51 Driver};" +
"SERVER=localhost;" +
"DATABASE=fso;" +
"UID=root;" +
"PASSWORD=;" +
"OPTION=3306";
OdbcConnection conn = new OdbcConnection(constr);
conn.Open();
这里打开了数据库连接通道下面就执行对数据库进行插入一条信息(有的代码就是在编辑器里写的!呵呵!希望没有错!)
![]()
Code
Code
try
{
OdbcCommand addcomm = new OdbcCommand("insert into user (username,password,mail)
values
('" + name + "','" + md5jiami + "','" + mail + "')",conn);
addcomm.ExecuteNonQuery();
}
catch (Exception ex)
{
HttpContext.Current.Response.Write("错误类型:" + ex.Message + "");
HttpContext.Current.Response.End();
}
finally
{
conn.close();
}
如果你的数据库没有出错的话try里面这条语句是完全可以执行的!finally这里的作用就是关闭数据库连接,他不会去管里上面的代码有没有成功!