- if (setjmp(restartpoint))
- continue;
- // Convert argument to its internal representation:
- cl_R x = arg;
- // Check sign.
- if (minusp(x)) {
- cout << '-';
- x = -x;
- }
- cout << "[";
- const char* separator = "; ";
- for (;;) {
- // Split x into integral and fractional part.
- cl_R_div_t x_split = floor2(x);
- cout << x_split.quotient;
- x = x_split.remainder;
- if (zerop(x))
- break;
- cout << separator;
- separator = ", ";
- // Invert x.
- x = recip(x);
- }
- cout << ']' << endl;
+ try {
+ // Convert argument to its internal representation:
+ cl_R x = arg;
+ // Check sign.
+ if (minusp(x)) {
+ cout << '-';
+ x = -x;
+ }
+ cout << "[";
+ const char* separator = "; ";
+ for (;;) {
+ // Split x into integral and fractional part.
+ cl_R_div_t x_split = floor2(x);
+ cout << x_split.quotient;
+ x = x_split.remainder;
+ if (zerop(x))
+ break;
+ cout << separator;
+ separator = ", ";
+ // Invert x.
+ x = recip(x);
+ }
+ cout << ']' << endl;
+ } catch ( const runtime_exception& ) {}