如何在C#中正确收集和显示多个错误

时间:2014-03-07 21:45:31

标签: c# windows error-handling

我的软件在启动之前连接了多个设备。我必须确保这些设备正常工作且连接良好。每个设备都有不同的错误ID代码,因此我们可以看到每个组件都无法正常工作。

当软件将对每个设备进行完全测试连接时,我们希望显示一条消息,显示每个发生故障的设备:

无法在一台或多台设备上连接[错误代码:XXXXXXX]。请查看www.xxxx.com/en/UserManual上的用户手册,如果您需要更多信息,请联系客户支持或发送电子邮件至xxxxx@example.com。

目前,我已经做了一些事情,但我觉得它不是非常“通用”,而且它有点硬编码。

我们为每个班级制作了一个ID,并添加了一个基数为2的数字:

enum eErrorCode
{
    MOTORA    = 0x0000001,
    MOTORB    = 0x0000010,
    SERIAL    = 0x0000100,
    LAN       = 0x0001000,
    MAINBOARD = 0x0010000,
    GENERATOR = 0x0100000,
    MAX = 6
}

因此,当激活激活功能时,我们可以添加每个错误:

Int32 ConnectToEveryDevice()
{ 
    Int32 Error = 0;
    foreach(IDevices device in this.Devices)
    {
         Error += device.Connect();
    }
    return Error;
}

例如:如果 MotorA,Lan和Serial 失败,屏幕将弹出Hex [错误代码:0x00001101] ,以便客户端可以轻松找到错误用户手册(在线)如果我们需要添加设备,我们可以无需更改所有内容即可完成。有人比这个有更好或更清洁的选择吗?

修改

感谢@Mike Christensen,我在CodeReview上提出了一个非常好的答案:

https://codereview.stackexchange.com/questions/43934/how-to-properly-detect-multiple-devices-failure

我稍后会尝试汇编反射属性(感谢@Tony Hopkinson),稍后我会将其添加为答案。

0 个答案:

没有答案