首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SqlClient SqlException未被捕获

SqlClient SqlException未被捕获
EN

Stack Overflow用户
提问于 2012-08-30 04:07:40
回答 3查看 2K关注 0票数 1

我有一个Azure工作者角色,在SQL数据库上执行简单的选择。它很少抛出下面的SqlException。

日志

基础提供程序在打开时失败。内部异常:超时过期。在操作完成或服务器没有响应之前经过的超时时间。异常类型: System.Data.SqlClient.SqlException

异常不会被捕获为SqlException。它被捕获在一般异常处理程序中。对此有何建议?

代码语言:javascript
复制
try{
}
catch(System.Data.SqlClient.SqlException sqlExcep)
{
}
catch(Exception genericExcep)
{
    **//The exception is caught as a generic exception**
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-06 21:31:42

SQL数据库环境是处理网络负载平衡和资源管理的路由器和代理层。如果SQL数据库本身没有超时,那么中间的其他东西可能会超时(尽管这通常很少见)。

我通常也处理IOException错误,并将其中一些错误视为一种瞬态错误。您实际收到的异常类型是什么?

您尝试过实现瞬态故障处理应用程序块吗?http://msdn.microsoft.com/en-us/library/hh680934(v=pandp.50

赫夫

票数 1
EN

Stack Overflow用户

发布于 2012-09-06 21:38:20

看起来这是内在的异常,而不是你抓到的实际异常。外部异常的类型是什么?唯一可以做的事情是捕获捕获异常的任何类型,然后检查内部异常:

代码语言:javascript
复制
try
{
    // Stuff
}
catch (Exception exc)
{
    if (exc.InnerException is System.Data.SqlClient.SqlException)
    {
        var sqlException = exc.InnerException as System.Data.SqlClient.SqlException;

        // Do stuff with the error.
    }
}

这个故事的寓意是你不能明确地捕捉到内在的例外:(

票数 1
EN

Stack Overflow用户

发布于 2020-07-10 14:46:19

尝试Microsoft.Data.SqlClient.SqlException而不是System.Data.SqlClient.SqlException

代码语言:javascript
复制
        catch (Microsoft.Data.SqlClient.SqlException ex)
        {

        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12189721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档