例如,如果用户在传输文件时关闭窗口,则可能会抛出此HttpException(0x80072746 - 远程主机关闭连接)。即使我们以较小的块发送文件并检查客户端是否仍然连接,仍然可能发生异常。我们希望能够捕获这个特定的异常,忽略它。
HttpException中提供的ErrorCode是一个Int32 - 太小而无法容纳0x80072746,那么我们在哪里可以找到这个数字?
答案 0 :(得分:5)
Int32实际上并不太小,无法容纳0x80072746;仅在“正常”表示法中,此数字为负数:0x80072746 == -2147014842,您可以创建一个常量来比较错误代码:
const int ErrConnReset = unchecked((int)0x80072746);
或
const int ErrConnReset = -2147014842;
答案 1 :(得分:5)
HttpException.ErrorCode属性为您提供所需的错误代码。使它看起来类似于:
try {
//...
}
catch (HttpException ex) {
if ((uint)ex.ErrorCode != 0x80072746) throw;
}
答案 2 :(得分:2)
在计算机科学中,负整数用十六进制表示,第一位设置为1(来源:wikipediat)。
根据这个,十六进制数0x80072746
可以用基数2写成:
1000 0000 0000 0111 0010 0111 0100 0110
设置第一位......然后它实际上对应于这个数字:
-0111 1111 1111 1000 1101 1000 1011 1010
最终可以像这样在基数10中表示:
-2147014842
最后,实际上是一个正确的整数。
不知道它是否可以帮助您解决问题。