add a contextNewWithSocket
provide a helper for catching exception without doing a catchall.

As a side effect, let AsyncException propagate