react-native-exception-handler icon indicating copy to clipboard operation
react-native-exception-handler copied to clipboard

Doesn't work inside promises?

Open Kebabpizza opened this issue 7 years ago • 9 comments

It does not seem to catch any errors inside promises for me.

I'm navigating to a different view using react-navigation inside a promise, and no errors are caught after this (or inside the promise itself).

fetchUser().then(() => { this.causeAnError() })

Kebabpizza avatar Dec 13 '17 09:12 Kebabpizza

I'm also having a similar problem problem. Regular errors are being caught correctly, but a TypeError in a render caused by a promise isn't caught and the red screen shows on both debug and release builds

andrew-wagner89 avatar Dec 14 '17 20:12 andrew-wagner89

Hmm. That's interesting @Kebabpizza . I ll take a look at that . But @andrew-wagner89 Red screen should never come in the release builds. .as they are entirely switched off during the build process.

a7ul avatar Dec 24 '17 06:12 a7ul

Hi @Kebabpizza @andrew-wagner89 Can you guys help with a screenshot or a larger snippet? .. I am only getting a warning yellow screen after trying to replicate. And yellow screens dont cause a app crash.

a7ul avatar Dec 26 '17 15:12 a7ul

Hi @master-atul, apologies for the late response.

After navigating to another screen with react-navigation, this produces a crash (red screen) instead of a yellow warning. And if you navigate within a promise react-native-exception-handler does not catch this.

Here is a sample: https://gist.github.com/Kebabpizza/925531ed9bab37ba6abf48f5de9c812a

using [email protected] [email protected] [email protected] [email protected]

Kebabpizza avatar Apr 12 '18 11:04 Kebabpizza

I was hitting this "bug" repeated times after upgrading RN > 0.50 Today I found out that this is due to the new error boundary handling in React 16. You can use componentDidCatch in a root component of your app to handle these scenarios.

You can read more about it here: https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html

maraujop avatar Apr 23 '18 15:04 maraujop

im experiencing this too, which made me think it isnt working at all

tonypee avatar Aug 28 '18 13:08 tonypee

It behaves bit peculiar for me. I tried the example given in the documentation of this plugin (like this.test() ). I kept this code ( this.test() ) in one of the component life cycle methods, it didn't catch the error !! Same code( this.test() ) I wrote in one of the button handlers in my component it did catch the error !!

I am not sure why this behavior ??

yugandhar-pathi avatar Feb 23 '19 02:02 yugandhar-pathi

I was hitting this "bug" repeated times after upgrading RN > 0.50 Today I found out that this is due to the new error boundary handling in React 16. You can use componentDidCatch in a root component of your app to handle these scenarios.

You can read more about it here: https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html

That's great! So we don't need this plugin any more right ?

yugandhar-pathi avatar Feb 25 '19 23:02 yugandhar-pathi

What we have to do in functional component (there is not componentDidCatch)?

aroshanzamir avatar Apr 12 '20 08:04 aroshanzamir