очень простой код и получая ошибку C2712, не мог понять почему

У меня некоторое время проблемы сerror C2712: Cannot use __try in functions that require object unwindingПосле сужения проблемы у меня остался очень очень простой код, и я не могу понять, почему это вызывает эту ошибку. Я использую Visual Studio под Windows.

Я компилирую с / EHa (я не использую / EHsc)

Причина я использую__try/__except и неtry/catch потому что я хочу перехватить ВСЕ ошибки и не хочу, чтобы программа аварийно завершала работу ни при каких обстоятельствах, включая, например, деление на 0, которое не отлавливает try-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

Ответы на вопрос(1)

Ваш ответ на вопрос