If the block has a finally, return consistency is checked in the
finally block. If all code paths in the finally returns, then the
returns in the try-catch blocks don't matter. If there is a code path
that does not return or if there is no finally block, the returns
of the try and catch blocks are checked for mismatch.