home *** CD-ROM | disk | FTP | other *** search
/ Using Visual C++ 4 (Special Edition) / Using_Visual_C_4_Special_Edition_QUE_1996.iso / ch13 / jump.cpp < prev    next >
C/C++ Source or Header  |  1995-09-18  |  576b  |  30 lines

  1. // Get needed include files
  2. #include <limits.h>
  3. #include <iostream.h>
  4. #include <setjmp.h>
  5.  
  6. jmp_buf jmp_info;
  7.  
  8. unsigned short Add(unsigned short addend1, unsigned short addend2)
  9. {
  10.     unsigned long sum = addend1 + addend2;
  11.     if (sum > USHRT_MAX)
  12.         longjmp(jmp_info, -1);
  13.     return (unsigned short) sum;
  14. }
  15.  
  16. void main()
  17. {
  18.     int ErrorCode = setjmp(jmp_info);
  19.     if (ErrorCode == 0) {
  20.         unsigned short Result = Add(12345, 54321);
  21.         cout << "The answer is " << Result << "\n";
  22.         return;
  23.     }
  24.  
  25.     // Error handling section
  26.     else {
  27.         cout << "Overflow error!\n";
  28.     }
  29. }
  30.