最近发现try跳转的小问题,如下 private void Page_Load(object sender, System.EventArgs e) {
Uri Baseurl=Request.UrlReferrer; if(Request.Form["UserName"]==null || Request.Form["Pass"]==null) { Panellogin.Visible=false; Panellogout.Visible=true; } else { string User=Request.Form["UserName"].ToString(); string Pass=Request.Form["Pass"].ToString(); STUWeb.localhost.Servicestu ws = new STUWeb.localhost.Servicestu(); ws.Credentials = System.Net.CredentialCache.DefaultCredentials; dsSTU.Merge(ws.GetSTU(User)); try { if(Pass==dsSTU.STU.Rows[0]["Ping"].ToString().Trim()) { DataGrid1.DataBind(); Label1.Text+="用户的信息如下:"; Panellogin.Visible=true; Panellogout.Visible=false; } ///<summary> ///关于try的跳转问题 ///下面代码将触发一个error,但是ex的信息为空 ///不论条件如何,else得不到响应 ///else满足的情况下,将执行catch的代码 ///故使用finally ///原因: ///可能是try没有执行完,跳转时,引发unload_Page,此时catch起作用 ///</summary> //else //{ // Response.Redirect("/STUWeb/login.aspx?id=2&User="+User); //} } catch(Exception ex) { Response.Redirect("/STUweb/login.aspx?id=1"); } finally { if(Pass!=dsSTU.STU.Rows[0]["Ping"].ToString().Trim()) { Response.Redirect("/STUWeb/login.aspx?id=2&User="+User); } } } } 呵呵,是我初出茅庐不怕虎啊,什么都敢乱用,都不晓得
Response.Redirect会引发一个线程正在被中止的异常

|