--- title: useRouteError new: true --- # `useRouteError` Inside of an [`errorElement`][errorelement], this hook returns anything thrown during an action, loader, or rendering. Note that thrown responses have special treatment, see [`isRouteErrorResponse`][isrouteerrorresponse] for more information. This feature only works if using a data router, see [Picking a Router][pickingarouter] ```jsx function ErrorBoundary() { const error = useRouteError(); console.error(error); return
{error.message}
; } } loader={() => { // unexpected errors in loaders/actions something.that.breaks(); }} action={() => { // stuff you throw on purpose in loaders/actions throw new Response("Bad Request", { status: 400 }); }} element={ // and errors thrown while rendering
{breaks.while.rendering}
} />; ``` [errorelement]: ../route/error-element [isrouteerrorresponse]: ../utils/is-route-error-response [pickingarouter]: ../routers/picking-a-router