Throwing char: a Rethrowing: a Caught char: a Throwing int: 37 Rethrowing: 37 Caught int: 37 Throwing float: 37.927 Rethrowing: 37.927 Caught float: 37.927 Throwing double: 37.927 Rethrowing: 37.927 Caught double: 37.927 Throwing std::string: hello world Rethrowing: hello world Caught std::string: hello world Throwing A Rethrowing A Caught A exit 0