Asp.net 如何将C#中的TimeoutException和redirec设置为CustomErrorPage.aspx

Asp.net 如何将C#中的TimeoutException和redirec设置为CustomErrorPage.aspx,asp.net,exception,exception-handling,command,Asp.net,Exception,Exception Handling,Command,我正在尝试为命令设置TimeoutException,如果代码中出现“command TimeoutException”,则必须转到catch块并进一步重定向到customerror.aspx页面。 代码是: 在catch 2块中-抛出的异常的完整类型是什么? 它可能不是TimeoutException,但会被异常捕获,因为这是.NET中异常的基本类型。看起来您正在尝试捕获数据库命令超时异常。它不会抛出.net超时异常,而是抛出带有文本“超时已过期…”的SqlException 由于您没有捕获s

我正在尝试为命令设置TimeoutException,如果代码中出现“command TimeoutException”,则必须转到catch块并进一步重定向到customerror.aspx页面。 代码是:


catch 2
块中-抛出的异常的完整类型是什么?
它可能不是
TimeoutException
,但会被
异常捕获,因为这是.NET中异常的基本类型。

看起来您正在尝试捕获数据库命令超时异常。它不会抛出
.net
超时异常
,而是抛出带有文本“超时已过期…”的
SqlException

由于您没有捕获
sqlException
,因此在本例中它将转到catch2块


签出链接。

嵌套异常,如上面的一个,当缓存一个时,其余的将被忽略,更像是。。否则,如果我同意。。。!但是,为什么它不适用于catch 1块代码以及何时会发生TimeoutException呢?当我将其设置为1秒时,它必须转到TimeoutException,但它失败了…为什么-(因为您实际得到的异常不是TimeoutException—可能是某种特定于数据库的异常
try
{
   command.Timeout=1; //which is in seconds for testing i have set it to one.
   //some code here
   // if TimeoutException occurs, it must go to following block which doesnthappen
   //And  it goes to catch 2: block..! Why is it so...?
}

//catch 1:
catch (TimeoutException ex)
{
     Response.Redirect("CustomError.aspx");

}

//catch 2:
catch (Exception ex)
{
     Response.Redirect("CustomError.aspx");
}