我是编程新手,我开始使用C++编程:原理和实践。在其中的一章中,它讨论了错误以及如何处理错误。抛出一个运行时错误
这里的代码片段是我试图实现的。在本书中,它声明了error()将以系统错误消息加上我们作为参数传递的字符串来终止程序。
#include <iostream>
#include <string>
using namespace std;
int area (int length, int width)
{
return length * width;
}
int framed_area (int x, int y)
{
return area(x-2, y-2);
}
inline void error(const string& s)
{
throw runtime_error(s);
}
int main()
{
int x = -1;
int y = 2;
int z = 4;
if(x<=0) error("non-positive x");
if(y<=0) error("non-positive y");
int area1 = area(x,y);
int area2 = framed_area(1,z);
int area3 = framed_area(y,z);
double ratio = double(area1)/area3;
system("PAUSE");
return EXIT_SUCCESS;
}
我得到的消息是“测试project.exe在0x7699c41f未处理的异常:微软C++异常:性病:: runtime_error内存位置0x0038fc18。”
所以我的问题是,我是什么做错了我传递给error()的消息没有通过?
“的章节之一是谈论错误以及如何处理它们。“你读过那章了吗?因为你没有处理错误。 – 2014-10-03 00:29:59
看看C++关键字'try'和'catch'。如果您不使用这些关键字,则您的程序将在第一个例外时终止。 – RPGillespie 2014-10-03 00:41:24