In your question, the question arises of what is conceptually impossible.
Block attempts are defined as dynamic stack designs. The try block catches the exceptions thrown by the code, which dynamically, when called, get from its contents.
When you create a new thread, you create a completely new stack that is not at all part of the dynamic context of the try block, even if the pthread_create call is inside the try.
source share