为什么异常不退出程序?
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;
}
}
您捕获了程序未崩溃的异常。异常处理的重点是捕捉异常并优雅地处理。
这是我的自定义异常:
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;
}
}
您捕获了程序未崩溃的异常。异常处理的重点是捕捉异常并优雅地处理。