Вопрос об исключениях
Я просто играл с исключениями в визуальной студии и с приведенным выше кодом, я ожидал, что, поскольку в спецификации исключений ничего не сказано, должно быть сгенерировано bad_exception. Но на самом деле происходит исключение, которое перехватывается соответствующим обработчиком. Почему так? Я пропускаю некоторые настройки или что-то в IDE?
В то время как я застрял в вышеупомянутом, На самом деле я пытался найти ответ на вопрос: если у меня есть пустая спецификация исключения, что тогда вызывается?неожиданное () метод или* Bad_exception * будут брошены и если оба в каком порядке? Вот код
#include "stdafx.h"
#include <stdio.h>
#include <exception>
#include <iostream>
using namespace std;
class A
{
public:
int i;
};
void myunexpected ()
{
cerr << "unexpected called\n";
}
void doSomething(void) throw();
void doSomething(void) throw()
{
A obj;
obj.i= 100;
throw obj;
}
int _tmain(int argc, _TCHAR* argv[])
{
set_unexpected (myunexpected);
try
{
doSomething();
}
catch (bad_exception be)
{
puts("Caught something");
}
catch (A &obj)
{
puts("Caught Integer");
}
return 0;
}