There are several things to know about FP exceptions:
controlfp's flags mask (i.e. disable) the exceptions you set, not enable them. So to enable only division by 0, you'd need set everything but in EM_ZERODIVIDE in the arguments
exceptions in SSE code are not affected by controlfp, you'd need to use _mm_setctr (so if you have SSE/AVX enabled in the compiler settings, most of your code will likely use SSE, even scalar)
if an exception happened when it was masked, it'll break if you enable it later (unless some code clears the status word)