Introduction
Promises help handle tasks that take time, like loading data. Using catch lets you catch errors easily when something goes wrong.
When you want to handle errors from a task that runs later, like reading a file.
When calling an API and you want to catch if the request fails.
When working with timers or delays and need to handle possible errors.
When chaining multiple tasks and want to catch any error in the chain.