我刚开始一直搞不懂 throw runtime_error(“error”);这条语句后面括号里的参数有什么意义 我觉得应该是一种错误提示 告诉我们发生了什么错误 可是抛出异常后 并没有看到后面的 “error” 的提示 查阅资料后了解到 后面的 “error"确实是 提示信息, runtime_error是一个异常类型,后面括号字符串 是用来初始化其对象的(应该是下文提到的err)
那么这个错误信息的内容(即此处的“error")怎么才能看到呢?
当throw 抛出异常后 catch会捕捉到异常 通过调用 err.what() 成员函数 输出异常信息 即我们在throw runtime_error(“i!=j")时的"i!=j"
那么这个错误信息的内容(即此处的“error")怎么才能看到呢?
异常类型有一个成员函数 what(); 我们可以这样用
#include <stdexcept>
#include <iostream>
using namespace std;
int main(void)
{
int i = 1;
int j = 0;
try {
if (i != j)
throw runtime_error ("i!=j");
}
catch (runtime_error err) {
cout << err.what() << endl;
}
}
当throw 抛出异常后 catch会捕捉到异常 通过调用 err.what() 成员函数 输出异常信息 即我们在throw runtime_error(“i!=j")时的"i!=j"