class Foo
{
public:
Foo()
{
printf( "생성자\n");
}
virtual ~Foo()
{
printf( "소멸자\n");
int* a=0;
*a=1;
printf( "소멸자 예외\n");
}
};
void bar()
{
try
{
Foo foo;
printf( "의도적 예외발생 전\n" );
int* a=0;
*a=1;
printf( "의도적 예외발생 후\n" );
}
catch(...)
{
printf( "예외 발생\n" );
}
printf( "계속 진행\n" );
}
Yes with SEH Exceptions (/EHa)
생성자
의도적 예외발생 전
소멸자
예외 발생
계속 진행
Yes (/EHsc)
생성자
의도적 예외발생 전
프로그램 종료됨
Yes with Extern C functions (/EHs)
생성자
의도적 예외발생 전
프로그램 종료됨
No
생성자
의도적 예외발생 전
예외 발생
계속 진행