Use a to(promise) helper that returns [data, null] or [null, err]. Then: const [data, err] = await to(fetch()); if (err) handleError(err); else render(data);. This is Go-style error handling.
async/await Error Handling Best Practices in JavaScript
How do you avoid nested try/catch in async/await in JavaScript?
The answer
More FAQs in async/await Error Handling Best Practices in JavaScript
Use try/catch around the await calls. If any await rejects, the catch block runs with the rejection reason. try/catch also catches thrown errors inside the try block.
Assign a fallback value in the catch block, then continue: try { data = await fetch(); } catch { data = fallback; } render(data);. The function continues with the fallback.
Re-throw the error in the catch block: catch (err) { console.error(err); throw err; }. The caller can catch it with their own try/catch.
Still have questions?
Browse all our FAQs or reach out to our support team
Want to upskill yourself?
Your learning library
Small steps. Big possibilities.
Find your next course. Build something great.