显然,我对这个话题的理解出了问题,但我找不出在哪里。我想要实现的是一个名为CustomException的自定义异常。我所做的是编译和工作的,但我确实认为我使用头文件的方式是错误的。因此,我制作了以下3个文件:
在我运行之后,下面是命令行:
$ g++ main.cpp -o main.o
$ ./main.o
$但是我想要的行为是,“你好世界!”打印到命令行。我更习惯于JAVA,所以这也许就是为什么我对C++有了一个粗略的开端。无论如何,我希望你能帮助我,因为我发现的教程彼此不一样,对我来说没有意义。
发布于 2014-05-10 22:56:35
您的问题是,您将CustomException::doSomething()定义为什么都不做:{}。在Exction.h中省略{}方法定义。然后编译并将exception.cpp链接到二进制文件中:
$ g++ -c main.cpp -o main.o
$ g++ -c exception.cpp -o exception.o
$ g++ main.o exception.o -o main
$ ./main注意,".o“后缀通常用于对象文件,而不是可执行文件。
发布于 2014-05-10 23:10:15
除了user3553031所说的,您的代码还有另一个可能的问题。在C++中,您应该通过引用捕获异常,而不是通过值捕获异常。否则就会引起问题。参见:C++ catch blocks - catch exception by value or reference?
https://stackoverflow.com/questions/23587129
复制相似问题