SqlException未被捕获

Ev.*_*Ev. 3 c# sql-server asp.net

我有一个ASP.Net应用程序,代码如下:

    try
    {
        sql = new SqlProc("prcCustomerAgeSelect",
            SqlProc.InParam("@DateFrom", SqlDbType.DateTime, 8, _OrderDateFrom),
            SqlProc.InParam("@DateTo", SqlDbType.DateTime, 8, _OrderDateTo),
        sql.Command.CommandTimeout = 1;
        dt = sql.ExecuteTable();

    }
    catch (SqlException ex)
    {
        Filter.ErrorMessage = "Please narrow your search criteria.";
    }
Run Code Online (Sandbox Code Playgroud)

注意这一行:

sql.Command.CommandTimeout = 1;

这导致抛出SqlException(用于测试).

我本以为catch块会捕获这个异常,但事实并非如此.相反,我得到:

超时已过期.操作完成之前经过的超时时间或服务器没有响应.

[SqlException(0x80131904):超时已过期.操作完成之前经过的超时时间或服务器没有响应.]

它为什么不抓住它?我使用的是错误的类型吗?我在这里错过了什么?

提前致谢!!

-ev

Jef*_*nal 6

这听起来像你所看到的不是一个SqlException.

SqlProc本身可能会捕获SqlExceptions,从中提取一些信息,然后抛出不同类型的新异常(将一些原始信息嵌入到新异常的消息中).