Почему исключение не выходит из программы? - PullRequest
1 голос
/ 10 июля 2020

Это мое собственное исключение:

class MyException {
public:
    MyException()
            :message("..."){}
    const char *what() const {return message;}
private:
    const char * message;
};

Это класс:

Class MyClass {
    void function() {
        // [...]
        if (condition) throw MyException();
        // [...]
    }
};

main. cpp:

MyClass a;
try {
    a.function();
}
catch (MyException & ex) {
    cerr << ex.what() << endl;
}

Я думал, что программа собиралась завершить работу, если condition == true, но вместо этого она продолжается ... Почему? (Сообщение появляется регулярно)

PS

То же, если я делаю что-то вроде:

function2();

int main {
    function2();
}

function2() {
    try {
        // something that may create an exception
    }
    catch (MyException & ex) {
        cerr << ex.what() << endl;
    }
}

1 Ответ

0 голосов
/ 10 июля 2020

Вы поймали исключение, поэтому программа не взломала sh. Смысл обработки исключений - перехватить исключения и корректно их обработать.

...