我试图弄清楚C ++中的异常处理是如何工作的,我不小心删除了<stdexcept>
标头,但是我意识到代码仍在编译中(但是当<iostream>
和<stdexcept>
都删除时却没有),即使domain_error
类在stdexcept.cpp
文件中。发生了什么事?
#include <iostream>
int main() {
try {
throw std::domain_error("");
} catch (std::domain_error) {
return 1;
}
return 0;
}
//g++ 6.3.0 compiles successfully