Handling Async Errors in JavaScript: A Quick Guide

Midhul P - Nov 6 - - Dev Community

Async errors in JavaScript arise when operations like network requests or file I/O fail unexpectedly. Without proper handling, these errors can lead to app crashes or erratic behavior. Here’s a brief guide on some effective ways to manage async errors in your code.

1. Try-Catch with Async/Await

For async functions, wrapping code in a try-catch block lets you handle errors gracefully. Here’s how:

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data); // Process data
  } catch (error) {
    console.error('Fetch error:', error); // Handle error
  }
}
Enter fullscreen mode Exit fullscreen mode

2. Handling Promise Rejections

If you’re working with promises directly, the .catch() method allows you to handle rejections easily:

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Promise rejection:', error));
Enter fullscreen mode Exit fullscreen mode

3. Global Error Handling

To catch any unhandled rejections across your application, use the unhandledrejection event:

window.addEventListener('unhandledrejection', event => {
  console.error('Unhandled rejection:', event.reason);
});
Enter fullscreen mode Exit fullscreen mode

4. Logging and Reporting Errors

While logging errors to the console works for development, production apps benefit from dedicated error-tracking tools like Sentry or LogRocket.

For a more in-depth look at async error handling, check out my full article on Medium: How to Handle JavaScript Async Errors : A Practical Guide

. . . . .