The code I want to execute in my exception handler may itself throw an exception.
Is the follow structure legal C++? If yes, are there any downsides?
No, there are no downsides. That's the way you should do it.