c++ - 当索引超出范围时,检索方法是否应该引发异常?

标签 c++ exception error-handling throw

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

uint32_t getRegister(uint32_t index) {

    ...
}

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

提前致谢!

最佳答案

万一您可以为错误情况0或0xffffffff或类似的情况保留返回值,我认为最好抛出一个异常。

我还将添加一种方法来检查索引是否有效,以防万一某些用户想对该库进行无异常编码,他会知道有效的寄存器可用。就像是:

bool isValidRegister(uint32_t index);

关于c++ - 当索引超出范围时,检索方法是否应该引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25202685/

相关文章:

c++ - 在 C++ 中使用 C 样式数组是否有正当理由?

c++ - CMake:对 boost 库的 undefined reference

java - catch block 中的 throw 语句如何防止未初始化变量的编译器错误?

python - 使用自定义 http 代码的 Flask abort()

php - 如何从 PHP 的 mail() 失败中获取额外的错误信息?

c++ - 如何在 C++ 中获取当前文件路径?

c++ - 在 C++ 中传递多维数组

java - 发送消息导致异常

ruby - 如何更改 Rails 错误消息文本 "We' 抱歉,出了点问题。”

mysql - MariaDB 相当于 Oracle WHENEVER SQLERROR