尝试在C ++中实现异常时出错

时间:2015-10-09 03:23:49

标签: c++ exception

  

错误:声明'虚拟const char * numberOutOfBounds :: what()const'有一个不同的异常说明符

我一直在寻找解决方案,但我无法找出我做错了什么。

我头文件中的例外:

class FileException:public exception {
public:
    virtual const char* what() const throw();
};

class numberOutOfBounds:public exception {
public:
    virtual const char* what() const throw();
};

我的cpp文件中有例外:

const char* FileException::what() const {
    return "Cannot open file";
}

const char* numberOutOfBounds::what() const {
    return "illegal number entered";
}

有人能让我知道我在这里做错了吗? 我环顾四周,无法弄清楚为什么我收到错误信息。

2 个答案:

答案 0 :(得分:2)

  

virtual const char* what() const throw();

此函数声明具有throw声明,但定义中缺少该声明。

你需要:

const char* FileException::what() const throw() {
                                     // ^^^^^^^ - added
    return "Cannot open file";
}

仅供参考,已有std::out_of_range个异常类。

答案 1 :(得分:0)

实现异常的正确方法:

var obj;       // arrary of logs
var index;
function renderLog() {
    if (index < obj.length ) {
         //change the css style of the log, and set display is unvisible.
        $("#log-content")  .prepend(obj[index++]);
        slideDown(3, function() {    renderLog();    });
    }
}