如何创建全局唯一错误ID?C#

1 c#

我想创建一堆错误.每个都特定于自己的类和模块.然后我想将id附加到异常,所以当我的msg改变时,id仍然是相同的.如何在不维护大型全局枚举的情况下创建此错误列表?

Dan*_*ker 9

将无符号的32位十六进制数字范围除以层次结构:

0xMMCCCEEE
Run Code Online (Sandbox Code Playgroud)

哪里:

  • MM是模块ID
  • CCC是班级ID
  • EEE是错误ID

然后你可以有0到0xFF(256)模块,每个类和错误都有0到0xFFF(4096),你只需要确保每个错误对于它的类是唯一的,并且每个类对于它的模块是唯一的,所以您不必将所有错误消息保存在一个巨大的表中.

例:

0x0401D00A
Run Code Online (Sandbox Code Playgroud)

这是模块04,类01D,错误00A.


Pav*_*aev 7

为每个错误生成一个 GUID。