为什么我们需要stdexcept
?例如std::runtime_error
。我们为什么需要它?我不能使用自己的try-catch块吗?如果我能为人们使用它们。我也应该使用它们还是应该创建自己的try catch块?
#include <iostream>
#include <stdexcept>
using namespace std;
int main()
{
int a = 10, b= 0, c;
try {
if ( b == 0 )
throw runtime_error("divide by zero error");
c = a/b;
cout << c<<endl;
} catch(runtime_error &error) {
cout << "exception accured"<<endl;
cout << error.what();
}
return 0;
}
而不是这样我可以使用下面的代码吗?:
#include <iostream>
#include <stdexcept>
using namespace std;
int main() {
int a = 10, b= 0, c;
try {
if ( b == 0 ) {
throw "divide by zero error";
}
c = a/b;
cout << c << endl;
} catch (const char *error) {
cout << "exception accured"<<endl;
cout << error;
}
return 0;
}
我应该使用哪一个以及std::runtime_error
(和其他stdexcept-except
类)的优点是什么