获取导致`std :: out_of_range`被抛出的数组

时间:2018-04-24 21:39:54

标签: c++ exception

在C ++中,是否可以以可编程方式访问导致std::out_of_range在catch块中抛出的容器?

编辑:我不打算调试或恢复有问题的容器。我只是有两个不同的容器,其中有lambda函数。catch块中的流量取决于哪个容器是有问题的容器。

1 个答案:

答案 0 :(得分:0)

如果您控制抛出异常,那么您可以尝试创建自己的自定义异常,然后再抛出它。虽然如果你已经知道引起异常的情况,你为什么要抛弃它。 抛出并捕获自己的异常通常是没有意义的,但在特殊情况下,您可以尝试这样做。所以你需要编写自己的异常类,它封装有关容器的信息,抛出然后处理它。

但是,在处理异常时容器的状态是有问题的。

考虑以下事项:

  • 抛出并捕获自己的异常是否有意义?
  • 如果您没有抛出异常,那么您将如何获得有关的信息 容器?
  • 为什么你甚至想要访问容器?
  • 容器是堆栈还是堆?
  • 谁控制容器的使用寿命?
  • 您是否重新抛出异常?