我试图在C ++中实现nd-array,例如python中的numpy,但我不知道如何处理“索引超出范围”之类的问题(或异常?)。我应该只使用assert来检查函数开头的参数,还是使用try / catch / throw机制?
顺便说一句,如果我使用断言,如何将错误消息(例如“输入索引超出范围”)打印给用户,而不是仅“断言第5行失败”断言。
我现在正在使用的宏来检查索引:
#define RANGE_CHECK(total, index) assert(total > index)
最佳答案
标准库使用的方法是从std::out_of_range
抛出functions named at
,并在functions named []
中具有未定义的行为。
关于c++ - 实现nd数组时如何处理C++中的“超出范围”异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55455903/