我认为它会:捕捉,除非发生一些关于'新'的错误(例如:oom ......) 但它每次都会直接在'新'运营商核心转储。
char* buf = NULL;
try {
buf = new char[100]; // core at this line every time
} catch (std::bad_alloc& ba) {
printf("bad_alloc, errmsg[%s]", ba.what());
}
也尝试不要使用下面的新内容:
char buf[100] = {0};
它也是核心转储!