我正在尝试设置命令的TimeoutException,如果“命令TimeoutException”出现在代码中,它必须转到catch块并进一步重定向到customerror.aspx页面。代码为:
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");
}
发布于 2012-01-04 19:06:28
在catch 2
块中-抛出的异常的完整类型是什么?它可能不是TimeoutException
,但会被Exception
捕获,因为它是.NET中异常的基类型。
发布于 2012-01-04 19:26:37
看起来您正在尝试捕获数据库命令超时异常。这不会抛出超时过期,而是抛出一个带有文本“.net
Timeout exception
...”的SqlException
。
由于您没有捕获sqlException
,因此在本例中它将转到catch2块。
查看this链接。
https://stackoverflow.com/questions/8732426
复制