The function throw() can also be used to immediately return any value, except 0. catch() is not really a function call, but a directive to the compiler.
The catch() is somewhat costly, and should not be used just anywhere. Rather, use it at places where an error would destroy consistency.