【发布时间】:2016-01-15 12:52:09
【问题描述】:
我在这里遇到了一个问题,因为当堆栈为空时,stack.front() 的返回没有指向任何内容。因此,尽管捕获了异常,我最终还是遇到了糟糕的访问运行时错误。
有没有更好的方法来做到这一点?我希望程序继续运行,即使某些函数被调用并出现错误。
【问题讨论】:
-
为什么要在函数中捕获异常?您应该将其传播给调用者,以便他们可以处理弹出和清空堆栈时要执行的操作。
-
你需要在某个地方捕捉它,而这个地方是一个使用你的 StackList 的函数。在 try 块中调用 top()。你知道它可以扔。
-
你应该在调用top()之前检查你的栈是否为空。这是处理空堆栈问题的最正确方法。
标签: c++ templates exception-handling return try-catch