3

たとえば、ファイルの送信中にユーザーがウィンドウを閉じると、この HttpException (0x80072746 - リモート ホストが接続を閉じた) がスローされる可能性があるようです。ファイルを小さなブロックで送信し、クライアントがまだ接続されていることを確認しても、例外が発生する可能性があります。この特定の例外をキャッチして無視できるようにしたいと考えています。

HttpException で提供される ErrorCode は Int32 です - 小さすぎて 0x80072746 を保持できません。

4

3 に答える 3

5

HttpException.ErrorCodeプロパティは、探しているエラーコードを提供します。これに似たものにします。

        try {
            //...
        }
        catch (HttpException ex) {
            if ((uint)ex.ErrorCode != 0x80072746) throw;
        }
于 2011-02-24T13:26:25.747 に答える
5

Int32は、0x80072746を保持するには小さすぎません。「通常の」表記でのみ、この数値は負になります:0x80072746 == -2147014842、エラーコードを比較する定数を作成できます。

const int ErrConnReset = unchecked((int)0x80072746);

また

const int ErrConnReset = -2147014842;
于 2011-02-24T12:56:29.987 に答える
2

コンピュータサイエンスでは、負の整数は16進数で表され、最初のビットは1に設定されます(出典:wikipediat)。

それによると、16進数0x80072746は基数2で書くことができます:

1000 0000 0000 0111 0010 0111 0100 0110

最初のビットが設定されます...その後、実際にはこの番号に対応します:

-0111 1111 1111 1000 1101 1000 1011 1010

これは最終的に次のように10進数で表すことができます:

-2147014842

これは最終的に、実際には正しい整数です。

それが問題の解決に役立つかどうかわからない。

于 2011-02-24T12:57:09.970 に答える