*****Listing 3*****


#include <math.h>	/* get struct */

int matherr(struct exception *pe)
{
	int retval = 1;	/* assume we'll recover */

	printf("Function %s failed with error type ", pe->name);
	if (pe->type == DOMAIN)
		printf("DOMAIN\n");
	else if (pe->type == SING)
		printf("SING\n");
	else if (pe->type == OVERFLOW)
		printf("OVERFLOW\n");
	else if (pe->type == UNDERFLOW)
		printf("UNDERFLOW\n");
	else if (pe->type == TLOSS)
		printf("TLOSS\n");
	else {
		printf("UNKNOWN\n");
		retval = 0;	/* can't handle here */
	}

	return retval;
}

