【问题标题】:ASP.NET How to get HttpException ErrorCodeASP.NET 如何获取 HttpException 错误代码
【发布时间】:2012-11-07 09:11:37
【问题描述】:

我正在尝试捕获并处理一个特定的 HttpException,即“远程主机关闭了连接。错误代码是 0x800704CD。”

我的目的是将 HttpException 的 Catch 添加到相关的 Try 块中,并测试生成的错误代码。示例代码:

Try
    // Do some stuff
Catch exHttp As HttpException
    If exHttp.ErrorCode.ToString() = "0x800704CD" Then DoSomething()
Catch ex As Exception
    // Generic error handling
End Try

但我不知道如何从 HttpException 对象中提取异常中显示的错误代码(即“0x800704CD”)。将 ErrorCode 属性的整数值转换为十六进制会返回“800704CD”,很明显我不明白这段代码是如何生成的。

谢谢。

【问题讨论】:

  • 在您分配 0x800704CD 的示例代码中应该生成另一个异常
  • 您是否尝试过打印堆栈跟踪并查看它有什么
  • exHttp.ErrorCode.ToString() 返回错误代码的整数值,转换为字符串,例如“-2147023667”

标签: asp.net httpexception


【解决方案1】:

试试下面的代码:

 Try
    // Do some stuff
        Catch exHttp As HttpException
            If exHttp.ErrorCode = &H800704CD Then DoSomething()
        Catch ex As Exception
    // Generic error handling
        End Try

【讨论】:

  • 感谢 RG ATHISH,添加了 &H 作品。你能解释一下为什么吗?
  • 0x800704CD 用于 C#.net ,&H800704CD 用于 vb.net
【解决方案2】:

ErrorCode 属性是一个整数,所以只测试整数值,没有理由转换为十六进制或字符串。

在大多数编程语言中,0x 表示以下字符表示十六进制数,即 0x800704CD 表示 800704CD 将被解释为十六进制数。对于 VB 使用 &H。

有关 VB.Net 文字的更多信息:

http://msdn.microsoft.com/en-us/library/s9cz43ek.aspx

http://msdn.microsoft.com/en-us/library/dzy06xhf.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-19
    • 2013-01-30
    • 2013-10-17
    • 2018-07-28
    • 2018-11-16
    • 2020-09-18
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多