As you can see, the error, thrown in baz() was rethrown in bar(). And, yet, when the error is finally caught in foo(), we get the following terminal output:
As you can see from the stacktrace, the error caught in foo() was the same error thrown in baz() and then rethrown in bar().
Want to use code from this post? Check out the license.