在C 中,是否可以编程访问导致std::out_of_range
扔入捕获块的容器?
编辑:我不打算调试或恢复有问题的容器。我只是有两个不同的容器,其中包含lambda功能。捕获块中的流量取决于哪个容器是一个问题。
如果您控制了异常的投掷,则可以尝试创建自己的自定义异常,然后将其投掷。尽管如果您已经知道例外导致条件,为什么要扔掉它。投掷和捕获自己的例外通常没有意义,但是在您的特殊情况下,您可以尝试做到这一点。因此,您需要编写自己的异常类,该类封装有关相关容器的信息,然后将其处理。
但是,在处理异常时,容器的状态值得怀疑。
考虑以下内容:
- 投掷并捕捉自己的例外是有意义的吗?
- 如果您不提出异常,那么您将如何获得有关的信息容器?
- 您为什么要访问容器?
- 堆栈还是堆上的容器?
- 谁控制着容器的寿命?
- 您是否会复发例外?