can `shutdown` throw exception?
in that case it might be better to catch that, and re-throw the original `e`