> The big question is how to fix this on Win32. Is a test in the integer > division routines enough? Is there a signal to catch on Win32?
After fighting with the docs a little bit, here is how to handle an int/0 in a C application. #include "stdio.h" #include "excpt.h" #include "windows.h" int HandleException( int iExcept ); int main(int argc, char* argv[]) { int b = 0; int a; puts("hello"); __try { puts("in try"); a = 0/b; } __except( HandleException(GetExceptionCode()) ) { puts("in except"); } puts("world"); } int HandleException( int iExcept ) { if (iExcept == EXCEPTION_INT_DIVIDE_BY_ZERO) { puts("Handled int/0 exception"); return EXCEPTION_EXECUTE_HANDLER; } /* call the system handler and crash */ return EXCEPTION_CONTINUE_SEARCH ; } Merlin ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster