Promissa saysHandle async errors by wrapping await in try/catch — the same pattern as synchronous code.
A rejected promise that you await throws, so wrap it in try { await … } catch (err) { … }. finally works too. This unifies sync and async error handling under one familiar structure. Without try/catch (or a .catch), a rejection becomes an unhandled promise rejection.
Power-ups you unlock
await rethrows a rejection
try/catch around await handles it
finally for cleanup works too
Unhandled rejections if you skip both
Race Condition Rex attacks — common mistakes
Forgetting try/catch around await
Swallowing errors in an empty catch
Mixing .catch and try/catch confusingly
Boss battleawait a rejecting promise inside try/catch and report the caught error.