为什么我们需要stdexcept标头

时间:2016-10-04 05:02:47

标签: c++ error-handling exception-handling

为什么我们需要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类)的优点是什么

0 个答案:

没有答案