为什么异常不退出程序?

Why doesn't the exception quit the program?

这是我的自定义异常:

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

这是class:

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

main.cpp:

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

我以为程序会在 condition == true 时退出,但它会继续...为什么? (定期显示消息)

P.S.

如果我这样做也是一样的:

function2();

int main {
    function2();
}

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

您捕获了程序未崩溃的异常。异常处理的重点是捕捉异常并优雅地处理。