return empty shared_ptr from whyFailed() if no exception set
Added unit test for Handle