我知道错误了
error: expected primary-expression before ';' token当我试图编译以下代码时。有什么问题吗?
#include <iostream>
#include <stdexcept>
#include <exception>
using namespace std;
class MyException : public std::invalid_argument{};
int main() {
try {
throw MyException; //here is the problem
}
catch (...){
}
return 0;
}我也试过这段代码
#include <iostream>
#include <stdexcept>
#include <exception>
using namespace std;
class MyException : public std::invalid_argument{};
int main() {
try {
throw MyException(); //here is the problem
}
catch (...){
}
return 0;
}但我又犯了一个错误
main.cpp: In constructor ‘MyException::MyException()’:
main.cpp:6:7: error: no matching function for call to ‘std::invalid_argument::invalid_argument()’
main.cpp:6:7: note: candidates are:
In file included from main.cpp:2:0:
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/stdexcept:86:14: note: std::invalid_argument::invalid_argument(const string&)
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/stdexcept:86:14: note: candidate expects 1 argument, 0 provided
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/stdexcept:83:9: note: std::invalid_argument::invalid_argument(const std::invalid_argument&)
/usr/lib/gcc/x86_64-redhat-linux/4.7.2/../../../../include/c++/4.7.2/stdexcept:83:9: note: candidate expects 1 argument, 0 provided
main.cpp: In function ‘int main()’:
main.cpp:10:27: note: synthesized method ‘MyException::MyException()’ first required here 发布于 2013-08-01 16:41:58
这是你的主要方法
int main()
{
try {
throw MyException; //here is the problem
}
catch (...){
}
return 0;
} 解决方案:
int main()
{
try {
MyException e;
throw e; //problem solved
}
catch (...){
}
return 0;
} 说明:您看,MyException是一个类。您可以抛出类的一个对象。
https://stackoverflow.com/questions/17999422
复制相似问题