首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过COM端口连接到设备的适当异常类型

通过COM端口连接到设备的适当异常类型
EN

Software Engineering用户
提问于 2016-05-04 09:43:47
回答 1查看 380关注 0票数 2

我正在围绕一个本地C库创建一个C#包装器库,该库允许我通过串行(COM)端口直接与特定的硬件进行通信。

当然,C库从其方法返回成功/失败代码。我想将这些转换为异常,但我很难找到构建在.Net框架中的适当异常。(我尽可能地使用现有的异常类型。)

考虑到这个库的存在是为了将数据从硬件流到pc并向硬件发送命令,我正在考虑从System.IO.IOException派生一些新的异常类型。这毕竟是输入/输出,但考虑到现有的IOException类型都与从文件中读取有关,这并不是“正确的”。

我想要写的代码的一个例子:

代码语言:javascript
运行
复制
if (!NativeMethods.ConnectToDevice(deviceName)
{
    var message = NativeMethods.GetLastErrorMessage();
    throw new ConnectionException(message);
}

其中ConnectionException是从IOException派生的。

  • 这是否一个合理的方法?
  • 我是否遗漏了其他一些适当的例外,要么直接使用(首选),要么派生新的类型?
EN

回答 1

Software Engineering用户

回答已采纳

发布于 2016-05-06 21:50:06

我维护了大量的类集合,他们使用多种通信接口进行接口和包装,从票据接受者和打印机到自定义电路板。我认为你应该选择最能描述问题起因的例外。例如,如果字节的参数不匹配,那么抛出一个(可选派生的) System.IO异常,因为它是由COM接口而不是COM设备引起的。但是,如果这是设备抛出的错误,如果您可以知道通过它们提供的API,那么我将生成一个从Exception派生的异常类,并抛出这些异常。在我的例子中,一个汇票承兑者如果没有收到它的邮件,则是一个不同的例外,它的消息的奇偶性很差。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/317512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档