【发布时间】:2009-07-26 17:07:33
【问题描述】:
在 Page_Load() 部分,我检查有效输入,如果它们无效,我将请求转移到自定义错误页面。
这样做时,会抛出一个 ThreadAbortException,它被我的 catch 块捕获,但 asp.net 将请求传输到未知异常页面。 我究竟做错了什么?当我转移到错误页面时,我不希望出现 ThreadAbortException。 例如:
protected void Page_Load(object sender, EventArgs e)
{
try
{
if (String.IsNullOrEmpty(szProductName))
{
//Product name not given. Hence cant process further.
Server.Transfer(Constants.ERROR_WRONG_INPUTS_ASPX);
}
else
{
//Do something.....
}
}
catch(Exception Ex)
{
}
}
作为一种解决方法,我现在使用:
Response.Redirect(Constants.ERROR_WRONG_INPUTS_ASPX, false);
而不是 Server.Transfer,即我允许进程在后台继续,这需要我检查有效性,然后只执行剩余的代码。
我的问题类似于:Exception Handling Application Block Exception Handler running in ASP.NET cannot call Response.End() 但似乎没有得到回答。
【问题讨论】: