4
error C2712: Cannot use __try in functions that require object unwinding
으로 잠시 문제가 있습니다. 문제를 좁히고 나서 매우 간단한 코드가 남았고 그 원인을 이해할 수 없습니다. 이 오류. Windows에서 Visual Studio를 사용하고 있습니다. 나는 모든 오류를 잡으려면, 그리고 어느 하나에 충돌하는 프로그램을 원하지 않기 때문에 나는/EHA로 컴파일하고매우 간단한 코드이고 C2712 오류가 발생하는 이유를 이해할 수 없었습니다.
(I 사용하지 않는/EHsc)
내가 __try/__except
하지 try/catch
을 사용하는 이유는 예를 들어 0으로 나누기 등 try-catch가 catch하지 않는 상황
#include <string>
static struct myStruct
{
static std::string foo() {return "abc";}
};
int main()
{
myStruct::foo();
__try
{ }
__except (true)
{ }
return 0;
}
출력 : 여기
error C2712: Cannot use __try in functions that require object unwinding
** 모든 ** 예외를 잡으려는 욕망에 아마 잘못 생각한 것입니다. 어쨌든이 작업을하기 위해서'__try' /'__catch' 블록을 다른 기능으로 옮겨야한다고 생각합니다. – Praetorian
@Praetorian 나는 그것을했고, 작동하지만, 모든 메인은 정적 함수로 가득 차있다. 그리고 나는 try-except를 모든 메인 위에두고 싶다. – user1438233
'main()'내의 모든 것을 다른 함수 'do_main'), 그리고 나서'__try {do_main(); } ...'? – Praetorian