.Net Framework の 0xe0 で始まる例外の意味

大概の .Net Framework の例外は

例外処理 (初回) は infocard.exe (KERNEL32.DLL) にあります: 0xE0434F4D: (名前がありません)。

みたいな感じで、全部定義がない不明な例外のように見えるのですが。実はちゃんと意味があるそうです。

#define SVL_CLR_NET_EXCEPTION 0xE0434F4D
// CLR (.Net) Exception Code
#define SVL_CLR_NET_COMPLUS_EXCEPTION 0xE0434352
// CLR (.Net) COM+ Exception Code (see .Net Core open source code)
#define SVL_CLR_NET_HIJACK_EXCEPTION 0xE0434F4E
// CLR (.Net) HIJACK Exception Code (see .Net Core open source code)
#define SVL_CLR_NET_CLRDATA_NOTIFY_EXCEPTION 0xE0444143
// CLR (.Net) Notify Exception Code (see .Net Core open source code) *
#define SVL_CLR_NET_EXX_EXCEPTION 0xE0455858
// CLR (.Net) EXX Exception Code (see .Net Core open source code)
#define SVL_CLR_NET_SEH_VERIFICATION_EXCEPTION 0xE0564552
// CLR (.Net) SEH Verification Exception Code (see .Net Core open source code) *
#define SVL_CLR_NET_INTERNAL_ASSERT_EXCEPTION 0xE0584D4E
// CLR (.Net) Internal ASSERT Exception Code (see .Net Core open source code)
#define SVL_MSVC_EXCEPTION 0xE06D7363
// C++ Exception Code

上記のような定義がされているものもありますが、 0xe0のあとの3バイトにはASCIIコードで3文字が割り当てられており、意味が持たせてあります。

#define SVL_CLR_NET_EXCEPTION 0xE0434F4D → COM
#define SVL_CLR_NET_COMPLUS_EXCEPTION 0xE0434352 → CCR
#define SVL_CLR_NET_HIJACK_EXCEPTION 0xE0434F4E → CON(COM+1)
#define SVL_CLR_NET_CLRDATA_NOTIFY_EXCEPTION 0xE0444143 → DAC
#define SVL_CLR_NET_EXX_EXCEPTION 0xE0455858 → EXX
#define SVL_CLR_NET_SEH_VERIFICATION_EXCEPTION 0xE0564552→ SEH
#define SVL_CLR_NET_INTERNAL_ASSERT_EXCEPTION 0xE0584D4E→XMN
#define SVL_MSVC_EXCEPTON 0xE06D7363 → mvc
#define SEH_VERIFICATION_EXCEPTION 0xe0564552 → VER
// 0xE053534F → SSO (Soft Stack Overflow)

CLR 例外 E0434352 | Microsoft Learn

多分、CCRは 並列協調実行環境(concurrency and coordination runtime)の略かな・ω・

おすすめ

4件のフィードバック

  1. Windows 2000 Warrior より:

    hi , there are no link to .net framework 4.0.3 ?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です