Due to React's async rendering, handling render errors can be pretty tricky. Some resources tell you to use a higher-order component to manually trigger an error state, but that's not useful for handling thrown errors. Others recommended writing a custom batching strategy and delegating the error handling to some other layer, which can be clunky. Fortunately, a new feature called error boundaries was added in version 16. Error boundaries allow your application to recover gracefully from thrown errors directly from the component tree. I'll show you how this new feature works, and also show off its use in a real application.