如何处理C ++中的运行时检查失败?

时间:2012-01-15 19:53:50

标签: c++ error-handling

这是我收到的错误:

enter image description here

我想知道这个:

  1. 如何设置try catch块来处理该错误? OR
  2. 如果try catch不可能,如何处理该错误?
  3. 当我通过指向具有错误签名的成员函数的指针调用成员函数时,我收到此错误。 如果我用正确的签名称它,那当然不会发生这个错误,但是,我只是想知道如果它发生的话我该如何处理它。

2 个答案:

答案 0 :(得分:2)

1。您无法使用try / catch处理该错误。

这是因为try / catch依赖于调用堆栈而您的错误是您的调用堆栈已损坏。

2. 没有合理的运行时方法可以提前知道代码会破坏堆栈。

这些问题通常在代码本身中转换(函数)指针时谨慎处理。编译器不允许使用不正确的函数指针赋值,除非你用强制转换强制它。

答案 1 :(得分:0)

您不能catch使用错误的调用约定进行函数调用,因为它在C ++术语中不是例外。错误是一个潜在致命的错误,它与程序的结构或表述有关,你不应该试图“处理”它,除非你正在做一些严重的低级别后向兼容特技表演雷蒙德·陈。