Write a function that raises a number to a power without using any built in pow function, and without using loops. (Hint: which topic have we learned recently gave you the behavior of a loop, but isn’t a loop?)
Use recursion.

Why not use std::max() instead of larger()? See http://www.cplusplus.com/reference/algorithm/max/

You are throwing an exception in SquareRoot() - but you are also catching the exception within the function. Try/catch should be around the call to SquareRoot() - not within the function.