Q: How can I handle floating-point exceptions gracefully?
A: On many systems, you can define a function matherr which will be called when there are certain floating-point errors, such as errors in the math routines in <math.h>. You may also be able to use signal (see question 19.38) to catch SIGFPE. See also questions 14.9 and 20.6b.
Rationale Sec. 4.5.1