Skip to content

Commit 8fb2691

Browse files
authored
fix: Don't re-throw error in a setTimeout() (#13613)
1 parent 641b2fd commit 8fb2691

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

src/sentry/static/sentry/app/utils/errorHandler.jsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@ import RouteError from 'app/views/routeError';
44
export default function errorHandler(Component) {
55
class ErrorHandler extends React.Component {
66
static getDerivedStateFromError(error) {
7-
setTimeout(() => {
8-
throw error;
9-
});
10-
117
// Update state so the next render will show the fallback UI.
128
return {
139
hasError: true,
@@ -16,10 +12,20 @@ export default function errorHandler(Component) {
1612
}
1713

1814
state = {
15+
// we are explicit if an error has been thrown since errors thrown are not guaranteed
16+
// to be truthy (e.g. throw null).
1917
hasError: false,
2018
error: null,
2119
};
2220

21+
componentDidCatch(error, info) {
22+
// eslint-disable-next-line no-console
23+
console.error(
24+
'Component stack trace caught in <ErrorHandler />:',
25+
info.componentStack
26+
);
27+
}
28+
2329
render() {
2430
if (this.state.hasError) {
2531
return <RouteError error={this.state.error} />;

0 commit comments

Comments
 (0)