Thread: Re: [GENERAL] division by zero

Re: [GENERAL] division by zero

From
"Merlin Moncure"
Date:
> 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


Re: [GENERAL] division by zero

From
Tom Lane
Date:
"Merlin Moncure" <merlin.moncure@rcsonline.com> writes:
> After fighting with the docs a little bit, here is how to handle an
> int/0 in a C application.  

>     __try
>     {
>         puts("in try");
>         a = 0/b;
>     }
>     __except( HandleException(GetExceptionCode()) )
>     {
>         puts("in except");
>     } 

This is not C.
        regards, tom lane