They are programming errors. new will throw a std::bad_alloc exception if it cannot allocate memory.
There is absolutely nothing correct about that code fragment.
You don't need the cast. You don't need the struct specifier. The condition will never evaluate to true. And exit() will never be called. exit() should never be called from a C++ application because certain destructors do not get called.