-----为什么捕捉不到异常--

huzhaoliang 2003-10-19 10:09:47
foreach(DataRow dr in this.dataSet21.Tables["User"].Rows)
{
try
{
if(dr["Name"].ToString()==TextboxName.Text &&
dr["LoginID"].ToString()==TextboxLoginID.Text
{
Response.Redirect("WebForm1.aspx?name="+TextboxName.Text);
}
}
catch
{
Response.Write("<script>alert('输入的密码或用户名错误,请重试!')</script>");
}
}请问上面捕捉异常的方法对不对?应该如何写,才能实现呢?请高手指教!
...全文
61 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2003-10-19
  • 打赏
  • 举报
回复
在try/catch块中用Response.Redirect常常会出现 Thread was being aborted 这样的错误,因为Response.Redirect方法会调用Response.End()方法,而这个方法又调用 Thread.CurrentThread.Abort()方法来终止当前线程并抛出ThreadAbortException,你的代码可以改成这样:
foreach(DataRow dr in this.dataSet21.Tables["User"].Rows)
{
string prm=null;
try
{
if(dr["Name"].ToString()==TextboxName.Text&&dr["LoginID"].ToString()==TextboxLoginID.Text
prm=TextBoxName.Text;
}
catch
{
}
if(prm!=null)
Response.Redirect("WebForm1.aspx?name="+prm);
else
Response.Write("<script>alert('输入的密码或用户名错误,请重试!')</script>");
}

或者这样:

foreach(DataRow dr in this.dataSet21.Tables["User"].Rows)
{
try
{
if(dr["Name"].ToString()==TextboxName.Text &&
dr["LoginID"].ToString()==TextboxLoginID.Text
{
Response.Redirect("WebForm1.aspx?name="+TextboxName.Text);
}
}
catch(ThreadAbortException){}
catch
{
Response.Write("<script>alert('输入的密码或用户名错误,请重试!')</script>");
}
}
huzhaoliang 2003-10-19
  • 打赏
  • 举报
回复
多谢大家指教,我已经解决了。谢谢!
loulanlouzhu 2003-10-19
  • 打赏
  • 举报
回复
if(dr["Name"].ToString()==TextboxName.Text &&
dr["LoginID"].ToString()==TextboxLoginID.Text

-->>这个只是返回false或者true,并没有出现什么异常,当然捕捉不到了!
suguanqun 2003-10-19
  • 打赏
  • 举报
回复
对,用if……else,要不你加断点做个跟踪,看看为什么没执行!
活靶子哥哥 2003-10-19
  • 打赏
  • 举报
回复
直接IF ELSE判断啊 为什么要try catch

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧