当索引超出范围时,检索方法是否应抛出异常?

时间:2014-08-08 11:39:54

标签: c++ exception error-handling throw

我有一个在两个进程之间使用的方法,如果它存在,必须返回一个寄存器值(uint32_t),但是如果传递的索引超出范围,我还需要返回一个错误。

uint32_t getRegister(uint32_t index) {

    ...
}

我不想将指针作为out参数传递。 那么,我该怎么做呢?我可以抛出异常吗?有更好的解决方案吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您可以为错误情况0或0xffffffff保留返回值,或者我认为最好抛出异常。

我还添加了一个方法来检查索引是否有效,如果某个用户想要对该库进行无异常编码,他就知道有效的寄存器可用。类似的东西:

bool isValidRegister(uint32_t index);