我是C ++异常的新手,并不太确定我应该如何使用它们。我对每个异常处理实践持开放态度,这只是我的一些想法。
我最近为一些使用POSIX API访问GPIO,I2C,UART和网络套接字的自定义硬件重写了我的C库。 现在,我正在尝试为上面提到的自定义硬件和接口库找到一个异常设计。
当前设计:
CustomHwException
,GpioException
,I2cException
,... gpio12
,{ {1}},i2c0
,ttys0
到目前为止,我所读到的关于例外情况的内容是,它们应该让我们的生活更轻松,而且我不认为嵌入在例外中的错误会增加一些真正的价值。 用户得到一个错误,并且必须决定在这种特殊情况下他最好做什么。了解硬件及其常见问题的图书馆开发人员是否更好地决定用户在发生错误(修复)时应该做些什么?
我也不确定每个界面都有一个Exception是个好主意。是否更好地捕获(更高级别)库中的低级接口的异常并抛出更高级别的异常,如port 32000
?这不会导致库中的代码和错误处理混合在一起吗?
你会如何实现这个?