根据Exception.Message处理VB.NET中的异常

时间:2013-11-20 10:32:53

标签: vb.net exception

我正在编写一个程序,它从工业设备中检索数据并将其导出到MySQL数据库。为了与设备交互,我使用的是制造商提供的DLL驱动程序。在此DLL中,当与设备通信时出现通信错误或任何其他类型的异常情况时,会抛出一个自定义异常。

问题是存在单个类异常。因此,当我捕获该类型的异常时,我无法确定发生了哪个特定问题,因为存在多个问题(连接超时,尝试访问无效的内存地址等)。

所以我现在正在做的是使用Exception.Message属性。因此,例如,如果异常消息包含“无效地址”,那么我知道该错误是由于尝试访问设备中的非法地址,类似地,如果异常消息包含“连接超时“我知道有一个例外超时。但是这种方法看起来非常危险,因为在将来的DLL版本中消息可能会发生变化。

如何更好地解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

如果你很幸运,“泛型”异常有一个带有真实异常类型的InnerException。

如果所有异常都具有相同的类型且唯一的区别是消息,那么您的解决方案是最好的。希望制造商不要改变任何东西,并确保测试每个新版本......