我正在尝试实现异常并将其排除在我的方法之外。
这是h
文件的例外
#ifndef EXCEPTION_H
#define EXCEPTION_H
#include <exception>
#include <string>
namespace core {
class no_implementation: public std::exception {
private:
std::string error_message;
public:
no_implementation(std::string error_message);
const char* what() const noexcept;
};
typedef no_implementation noimp;
}
#endif
这是
cpp
文件#include "../headers/exception.h"
using namespace core;
no_implementation::no_implementation(std::string error_message = "Not implemented!") {
this->error_message = error_message;
}
const char* no_implementation::what() const noexcept {
return this->error_message.c_str();
}
这是方法
std::string IndexedObject::to_string() {
throw noimp;
}
但这显示我错误
throw noimp; //expected primary-expression before ';' token
有什么问题?
最佳答案
要创建这种类型的临时文件,您需要使用这样的符号(请注意额外的括号):
throw noimp();
如果没有括号,则尝试抛出类型而不是对象。除非将默认值移动到声明中,否则您还将指定字符串:使用默认值时,该默认值必须可见。
关于c++ - 预期在';'之前的主要表达式代币,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31495731/