polling-xhr: avoid catching user-thrown errors