C ++自己的异常实践

时间:2016-07-04 13:22:03

标签: c++ exception error-handling exception-handling

我是C ++异常的新手,并不太确定我应该如何使用它们。我对每个异常处理实践持开放态度,这只是我的一些想法。

我最近为一些使用POSIX API访问GPIO,I2C,UART和网络套接字的自定义硬件重写了我的C库。 现在,我正在尝试为上面提到的自定义硬件和接口库找到一个异常设计。

当前设计:

  • 每个界面都拥有例外,例如CustomHwExceptionGpioExceptionI2cException,...
  • 为每个Exception(一些常见的基类)嵌入其他信息
    • "端口" number,可以用于记录和异常处理本身(而#34;端口"可以是任何数字,如接口号,真实端口号,引脚号等):gpio12,{ {1}},i2c0ttys0
    • 用于记录的错误消息(字符串)
    • 致命/非致命
    • 可能解决问题的方法:例如无,请稍后再试,重置界面,...

到目前为止,我所读到的关于例外情况的内容是,它们应该让我们的生活更轻松,而且我不认为嵌入在例外中的错误会增加一些真正的价值。 用户得到一个错误,并且必须决定在这种特殊情况下他最好做什么。了解硬件及其常见问题的图书馆开发人员是否更好地决定用户在发生错误(修复)时应该做些什么?

我也不确定每个界面都有一个Exception是个好主意。是否更好地捕获(更高级别)库中的低级接口的异常并抛出更高级别的异常,如port 32000?这不会导致库中的代码和错误处理混合在一起吗?

你会如何实现这个?

0 个答案:

没有答案