/* demonstrates a throw within a function caught in the parent function */ #include int funnyfunc() { int val; try { printf("Enter a value: "); scanf("%d", &val); if(val > 9) throw "out of bounds value"; if( val < 0 ) throw val; } catch( int a ) { printf("Negative value\n"); return -a; } return val; } int main(int argc, char *argv[]) { int val; for(;;) { try { val = funnyfunc(); printf("value %d\n", val); } catch( const char *s ) { printf("Error: %s\n", s ); continue; } if(!val) break; } printf("terminating\n"); return(0); }