【发布时间】:2018-04-09 14:28:47
【问题描述】:
void main(){
try {
GameEntry deletedItem = newList.remove(13);
}
catch (IndexOutOfBound &e) {
cout << e.what() << endl;
}
cout << ":)";
}
在此源码中,在catch()处错误处理后,main函数成功放入“:)”,但main()函数的结尾行出现未知错误。
我知道如何通过将exit(0) 放在cout << ":)" 之后来解决此错误,但我不知道原因。
return 和 exit 在错误处理方面有什么区别吗?当我使用try catch 块时,我是否必须使用int main(),而不是void main()?
[已解决] 发现类的析构函数出错了。
【问题讨论】:
-
您必须始终使用
int main。 -
是的,你必须使用
int main(...),但它不会导致崩溃(我猜是崩溃了?)。没有 MCVE,不知道崩溃的原因是什么。 -
GameEntry、IndexOutOfBound和newList的任何类型中的一个或多个中存在一个或多个错误。 -
发现类的析构函数有错误。