https://www.jamescrosswell.dev/posts/catching-async-void-exceptions/