Следующий код скомпилируется, но завершится с ошибкой во время выполнения:
int main() {
try {
throw;
}
catch(...){
cout<<"In catch";
}
return 0;
}
Результат: «Необработанное исключение в 0x7c812a5b в hello.exe: исключение Microsoft C ++: [rethrow] @ 0x00000000»
Почему компилятор позволяет скомпилировать код? компилятору кажется не такой сложной задачей проверить, является ли этот код частью блока catch или нет.