getsentry / sentry-react-native

Official Sentry SDK for React Native
https://sentry.io
MIT License
1.58k stars 337 forks source link

Can we custom alert to handle js exceptions #393

Closed chialin closed 5 years ago

chialin commented 6 years ago

OS:

Platform:

Output of node -v && npm -v && npm ls --prod --depth=0

v8.10.0
5.8.0
yarn list v1.5.1
├─ @babel/code-frame@7.0.0-beta.44
├─ @babel/core@7.0.0-beta.44
├─ @babel/generator@7.0.0-beta.44
├─ @babel/helper-annotate-as-pure@7.0.0-beta.44
├─ @babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.44
├─ @babel/helper-builder-react-jsx@7.0.0-beta.44
├─ @babel/helper-call-delegate@7.0.0-beta.44
├─ @babel/helper-define-map@7.0.0-beta.44
├─ @babel/helper-explode-assignable-expression@7.0.0-beta.44
├─ @babel/helper-function-name@7.0.0-beta.44
├─ @babel/helper-get-function-arity@7.0.0-beta.44
├─ @babel/helper-hoist-variables@7.0.0-beta.44
├─ @babel/helper-module-imports@7.0.0-beta.44
├─ @babel/helper-module-transforms@7.0.0-beta.44
├─ @babel/helper-optimise-call-expression@7.0.0-beta.44
├─ @babel/helper-plugin-utils@7.0.0-beta.44
├─ @babel/helper-remap-async-to-generator@7.0.0-beta.44
├─ @babel/helper-replace-supers@7.0.0-beta.44
├─ @babel/helper-simple-access@7.0.0-beta.44
├─ @babel/helper-split-export-declaration@7.0.0-beta.44
├─ @babel/helper-wrap-function@7.0.0-beta.44
├─ @babel/helpers@7.0.0-beta.44
├─ @babel/highlight@7.0.0-beta.44
├─ @babel/plugin-external-helpers@7.0.0-beta.44
├─ @babel/plugin-proposal-class-properties@7.0.0-beta.44
├─ @babel/plugin-proposal-object-rest-spread@7.0.0-beta.44
├─ @babel/plugin-syntax-class-properties@7.0.0-beta.44
├─ @babel/plugin-syntax-dynamic-import@7.0.0-beta.44
├─ @babel/plugin-syntax-flow@7.0.0-beta.44
├─ @babel/plugin-syntax-jsx@7.0.0-beta.44
├─ @babel/plugin-syntax-object-rest-spread@7.0.0-beta.44
├─ @babel/plugin-transform-arrow-functions@7.0.0-beta.44
├─ @babel/plugin-transform-block-scoping@7.0.0-beta.44
├─ @babel/plugin-transform-classes@7.0.0-beta.44
├─ @babel/plugin-transform-computed-properties@7.0.0-beta.44
├─ @babel/plugin-transform-destructuring@7.0.0-beta.44
├─ @babel/plugin-transform-exponentiation-operator@7.0.0-beta.44
├─ @babel/plugin-transform-flow-strip-types@7.0.0-beta.44
├─ @babel/plugin-transform-for-of@7.0.0-beta.44
├─ @babel/plugin-transform-function-name@7.0.0-beta.44
├─ @babel/plugin-transform-literals@7.0.0-beta.44
├─ @babel/plugin-transform-modules-commonjs@7.0.0-beta.44
├─ @babel/plugin-transform-object-assign@7.0.0-beta.44
├─ @babel/plugin-transform-parameters@7.0.0-beta.44
├─ @babel/plugin-transform-react-display-name@7.0.0-beta.44
├─ @babel/plugin-transform-react-jsx-source@7.0.0-beta.44
├─ @babel/plugin-transform-react-jsx@7.0.0-beta.44
├─ @babel/plugin-transform-regenerator@7.0.0-beta.44
├─ @babel/plugin-transform-shorthand-properties@7.0.0-beta.44
├─ @babel/plugin-transform-spread@7.0.0-beta.44
├─ @babel/plugin-transform-template-literals@7.0.0-beta.44
├─ @babel/register@7.0.0-beta.44
├─ @babel/template@7.0.0-beta.44
├─ @babel/traverse@7.0.0-beta.44
├─ @babel/types@7.0.0-beta.44
├─ @sentry/cli@1.30.4
├─ @sentry/wizard@0.9.5
├─ @types/node@9.6.4
├─ abab@1.0.4
├─ abbrev@1.1.1
├─ absolute-path@0.0.0
├─ accepts@1.3.5
├─ acorn-globals@4.1.0
├─ acorn-jsx@3.0.1
├─ acorn@5.5.3
├─ adm-zip@0.4.7
├─ after@0.8.2
├─ agent-base@4.2.0
├─ ajv-keywords@2.1.1
├─ ajv@5.5.2
├─ align-text@0.1.4
├─ amdefine@1.0.1
├─ ansi-align@2.0.0
├─ ansi-escapes@3.1.0
├─ ansi-gray@0.1.1
├─ ansi-regex@2.1.1
├─ ansi-styles@3.2.1
├─ ansi-wrap@0.1.0
├─ ansi@0.3.1
├─ any-observable@0.2.0
├─ anymatch@2.0.0
├─ app-root-path@2.0.1
├─ append-transform@0.4.0
├─ aproba@1.2.0
├─ arch@2.1.0
├─ are-we-there-yet@1.1.4
├─ argparse@1.0.10
├─ aria-query@0.7.1
├─ arr-diff@4.0.0
├─ arr-flatten@1.1.0
├─ arr-union@3.1.0
├─ array-differ@1.0.0
├─ array-equal@1.0.0
├─ array-filter@0.0.1
├─ array-includes@3.0.3
├─ array-map@0.0.0
├─ array-reduce@0.0.0
├─ array-union@1.0.2
├─ array-uniq@1.0.3
├─ array-unique@0.3.2
├─ arraybuffer.slice@0.0.7
├─ arrify@1.0.1
├─ art@0.10.2
├─ asap@2.0.6
├─ asn1@0.2.3
├─ assert-plus@1.0.0
├─ assign-symbols@1.0.0
├─ ast-types-flow@0.0.7
├─ astral-regex@1.0.0
├─ async-limiter@1.0.0
├─ async@2.6.0
├─ asynckit@0.4.0
├─ atob@2.1.0
├─ aws-sign2@0.6.0
├─ aws4@1.7.0
├─ axobject-query@0.1.0
├─ babel-code-frame@6.26.0
├─ babel-core@6.26.0
├─ babel-eslint@8.2.2
├─ babel-generator@6.26.1
├─ babel-helper-builder-binary-assignment-operator-visitor@6.24.1
├─ babel-helper-builder-react-jsx@6.26.0
├─ babel-helper-call-delegate@6.24.1
├─ babel-helper-define-map@6.26.0
├─ babel-helper-explode-assignable-expression@6.24.1
├─ babel-helper-function-name@6.24.1
├─ babel-helper-get-function-arity@6.24.1
├─ babel-helper-hoist-variables@6.24.1
├─ babel-helper-optimise-call-expression@6.24.1
├─ babel-helper-regex@6.26.0
├─ babel-helper-remap-async-to-generator@6.24.1
├─ babel-helper-replace-supers@6.24.1
├─ babel-helpers@6.24.1
├─ babel-jest@22.4.3
├─ babel-messages@6.23.0
├─ babel-plugin-check-es2015-constants@6.22.0
├─ babel-plugin-external-helpers@6.22.0
├─ babel-plugin-flow-react-proptypes@23.0.0
├─ babel-plugin-idx@2.2.0
├─ babel-plugin-istanbul@4.1.6
├─ babel-plugin-jest-hoist@22.4.3
├─ babel-plugin-react-transform@3.0.0
├─ babel-plugin-syntax-async-functions@6.13.0
├─ babel-plugin-syntax-class-properties@6.13.0
├─ babel-plugin-syntax-dynamic-import@6.18.0
├─ babel-plugin-syntax-exponentiation-operator@6.13.0
├─ babel-plugin-syntax-flow@6.18.0
├─ babel-plugin-syntax-jsx@6.18.0
├─ babel-plugin-syntax-object-rest-spread@6.13.0
├─ babel-plugin-syntax-trailing-function-commas@6.22.0
├─ babel-plugin-transform-async-to-generator@6.16.0
├─ babel-plugin-transform-class-properties@6.24.1
├─ babel-plugin-transform-es2015-arrow-functions@6.22.0
├─ babel-plugin-transform-es2015-block-scoped-functions@6.22.0
├─ babel-plugin-transform-es2015-block-scoping@6.26.0
├─ babel-plugin-transform-es2015-classes@6.24.1
├─ babel-plugin-transform-es2015-computed-properties@6.24.1
├─ babel-plugin-transform-es2015-destructuring@6.23.0
├─ babel-plugin-transform-es2015-for-of@6.23.0
├─ babel-plugin-transform-es2015-function-name@6.24.1
├─ babel-plugin-transform-es2015-literals@6.22.0
├─ babel-plugin-transform-es2015-modules-commonjs@6.26.0
├─ babel-plugin-transform-es2015-object-super@6.24.1
├─ babel-plugin-transform-es2015-parameters@6.24.1
├─ babel-plugin-transform-es2015-shorthand-properties@6.24.1
├─ babel-plugin-transform-es2015-spread@6.22.0
├─ babel-plugin-transform-es2015-sticky-regex@6.24.1
├─ babel-plugin-transform-es2015-template-literals@6.22.0
├─ babel-plugin-transform-es2015-unicode-regex@6.24.1
├─ babel-plugin-transform-es3-member-expression-literals@6.22.0
├─ babel-plugin-transform-es3-property-literals@6.22.0
├─ babel-plugin-transform-exponentiation-operator@6.24.1
├─ babel-plugin-transform-flow-strip-types@6.22.0
├─ babel-plugin-transform-object-assign@6.22.0
├─ babel-plugin-transform-object-rest-spread@6.26.0
├─ babel-plugin-transform-react-display-name@6.25.0
├─ babel-plugin-transform-react-es6-displayname@1.0.0-beta1.4
├─ babel-plugin-transform-react-jsx-source@6.22.0
├─ babel-plugin-transform-react-jsx@6.24.1
├─ babel-plugin-transform-regenerator@6.26.0
├─ babel-plugin-transform-strict-mode@6.24.1
├─ babel-polyfill@6.23.0
├─ babel-preset-es2015-node@6.1.1
├─ babel-preset-fbjs@2.1.4
├─ babel-preset-jest@22.4.3
├─ babel-preset-react-native@4.0.0
├─ babel-register@6.26.0
├─ babel-runtime@6.26.0
├─ babel-template@6.26.0
├─ babel-traverse@6.26.0
├─ babel-types@6.26.0
├─ babylon@6.18.0
├─ backo2@1.0.2
├─ balanced-match@1.0.0
├─ base@0.11.2
├─ base64-arraybuffer@0.1.5
├─ base64-js@1.2.0
├─ basic-auth@2.0.0
├─ bcrypt-pbkdf@1.0.1
├─ beeper@1.1.1
├─ better-assert@1.0.2
├─ big-integer@1.6.28
├─ big.js@3.2.0
├─ binance-api-node@0.7.6
├─ blob@0.0.4
├─ block-stream@0.0.9
├─ bluebird@3.5.1
├─ boolbase@1.0.0
├─ boom@2.10.1
├─ boxen@1.3.0
├─ bplist-creator@0.0.7
├─ bplist-parser@0.1.1
├─ brace-expansion@1.1.11
├─ braces@1.8.5
├─ browser-process-hrtime@0.1.2
├─ browser-resolve@1.11.2
├─ bser@2.0.0
├─ buffer-from@1.0.0
├─ builtin-modules@1.1.1
├─ bytes@3.0.0
├─ cache-base@1.0.1
├─ caller-path@0.1.0
├─ callsite@1.0.0
├─ callsites@0.2.0
├─ camelcase@4.1.0
├─ capture-stack-trace@1.0.0
├─ caseless@0.12.0
├─ center-align@0.1.3
├─ chalk@2.3.2
├─ chardet@0.4.2
├─ cheerio@1.0.0-rc.2
├─ child-process-promise@2.2.1
├─ ci-info@1.1.3
├─ circular-json@0.3.3
├─ clamp@1.0.1
├─ class-utils@0.3.6
├─ cli-boxes@1.0.0
├─ cli-cursor@1.0.2
├─ cli-spinners@0.1.2
├─ cli-truncate@0.2.1
├─ cli-width@2.2.0
├─ clipboardy@1.2.3
├─ cliui@3.2.0
├─ clone-stats@0.0.1
├─ clone@1.0.4
├─ co@4.6.0
├─ code-point-at@1.1.0
├─ collection-visit@1.0.0
├─ color-convert@1.9.1
├─ color-name@1.1.3
├─ color-string@1.5.2
├─ color-support@1.1.3
├─ color@3.0.0
├─ colors@0.5.1
├─ combined-stream@1.0.6
├─ commander@2.15.1
├─ commondir@1.0.1
├─ compare-versions@3.1.0
├─ component-bind@1.0.0
├─ component-emitter@1.2.1
├─ component-inherit@0.0.3
├─ compressible@2.0.13
├─ compression@1.7.2
├─ concat-map@0.0.1
├─ concat-stream@1.6.2
├─ configstore@3.1.2
├─ connect@3.6.6
├─ console-control-strings@1.1.0
├─ contains-path@0.1.0
├─ convert-source-map@1.5.1
├─ copy-descriptor@0.1.1
├─ core-js@2.5.5
├─ core-util-is@1.0.2
├─ cosmiconfig@4.0.0
├─ create-error-class@3.0.2
├─ create-react-class@15.6.3
├─ create-react-context@0.2.1
├─ cross-spawn@5.1.0
├─ cryptiles@2.0.5
├─ crypto-random-string@1.0.0
├─ css-select@1.2.0
├─ css-what@2.1.0
├─ cssom@0.3.2
├─ cssstyle@0.2.37
├─ d3-path@1.0.5
├─ d3-shape@1.2.0
├─ damerau-levenshtein@1.0.4
├─ dashdash@1.14.1
├─ data-urls@1.0.0
├─ date-fns@1.29.0
├─ dateformat@2.2.0
├─ debug@2.6.9
├─ decamelize@1.2.0
├─ decode-uri-component@0.2.0
├─ decompress-response@3.3.0
├─ dedent@0.7.0
├─ deep-extend@0.4.2
├─ deep-is@0.1.3
├─ deepmerge@2.1.0
├─ default-require-extensions@1.0.0
├─ define-properties@1.1.2
├─ define-property@0.2.5
├─ del@2.2.2
├─ delayed-stream@1.0.0
├─ delegates@1.0.0
├─ denodeify@1.2.1
├─ depd@1.1.2
├─ destroy@1.0.4
├─ detect-indent@4.0.0
├─ detect-libc@1.0.3
├─ detect-newline@2.1.0
├─ detox-server@7.0.0
├─ detox@7.3.3
├─ diff@3.5.0
├─ discontinuous-range@1.0.0
├─ doctrine@2.1.0
├─ dom-serializer@0.1.0
├─ dom-walk@0.1.1
├─ domelementtype@1.3.0
├─ domexception@1.0.1
├─ domhandler@2.4.1
├─ domutils@1.5.1
├─ dot-prop@4.2.0
├─ duplexer2@0.0.2
├─ duplexer3@0.1.4
├─ ecc-jsbn@0.1.1
├─ ee-first@1.1.1
├─ elegant-spinner@1.0.1
├─ emoji-regex@6.5.1
├─ emojis-list@2.1.0
├─ encodeurl@1.0.2
├─ encoding@0.1.12
├─ end-of-stream@1.4.1
├─ engine.io-client@3.2.1
├─ engine.io-parser@2.1.2
├─ entities@1.1.1
├─ envinfo@3.11.1
├─ enzyme-adapter-react-16@1.1.1
├─ enzyme-adapter-utils@1.3.0
├─ enzyme-to-json@3.3.3
├─ enzyme@3.3.0
├─ error-ex@1.3.1
├─ errorhandler@1.5.0
├─ es-abstract@1.11.0
├─ es-to-primitive@1.1.1
├─ es6-promise@4.2.4
├─ es6-promisify@5.0.0
├─ escape-html@1.0.3
├─ escape-string-regexp@1.0.5
├─ escodegen@1.9.1
├─ eslint-config-airbnb-base@12.1.0
├─ eslint-config-airbnb@16.1.0
├─ eslint-config-cnyes@1.1.0
├─ eslint-config-prettier@2.9.0
├─ eslint-import-resolver-node@0.3.2
├─ eslint-loader@2.0.0
├─ eslint-module-utils@2.2.0
├─ eslint-plugin-flowtype@2.46.1
├─ eslint-plugin-import@2.10.0
├─ eslint-plugin-jsx-a11y@6.0.3
├─ eslint-plugin-react-native-globals@0.1.2
├─ eslint-plugin-react-native@3.2.1
├─ eslint-plugin-react@7.7.0
├─ eslint-plugin-security@1.4.0
├─ eslint-restricted-globals@0.1.1
├─ eslint-scope@3.7.1
├─ eslint-visitor-keys@1.0.0
├─ eslint@4.19.1
├─ espree@3.5.4
├─ esprima@4.0.0
├─ esquery@1.0.1
├─ esrecurse@4.2.1
├─ estraverse@4.2.0
├─ esutils@2.0.2
├─ etag@1.8.1
├─ event-target-shim@1.1.1
├─ eventemitter3@3.0.1
├─ exec-sh@0.2.1
├─ execa@0.7.0
├─ exit-hook@1.1.1
├─ exit@0.1.2
├─ expand-brackets@0.1.5
├─ expand-range@1.8.2
├─ expect@22.4.3
├─ extend-shallow@2.0.1
├─ extend@3.0.1
├─ external-editor@2.2.0
├─ extglob@0.3.2
├─ extsprintf@1.3.0
├─ fancy-log@1.3.2
├─ fast-deep-equal@1.1.0
├─ fast-json-stable-stringify@2.0.0
├─ fast-levenshtein@2.0.6
├─ fastfall@1.5.1
├─ fb-watchman@2.0.0
├─ fbjs-scripts@0.8.2
├─ fbjs@0.8.16
├─ figures@1.7.0
├─ file-entry-cache@2.0.0
├─ filename-regex@2.0.1
├─ fileset@2.0.3
├─ fill-range@2.2.3
├─ finalhandler@1.1.0
├─ find-cache-dir@0.1.1
├─ find-parent-dir@0.3.0
├─ find-up@2.1.0
├─ flat-cache@1.3.0
├─ flow-bin@0.67.1
├─ for-in@1.0.2
├─ for-own@0.1.5
├─ foreach@2.0.5
├─ forever-agent@0.6.1
├─ form-data@2.1.4
├─ fragment-cache@0.2.1
├─ fresh@0.5.2
├─ fs-extra@1.0.0
├─ fs.realpath@1.0.0
├─ fsevents@1.1.3
├─ fstream-ignore@1.0.5
├─ fstream@1.0.11
├─ function-bind@1.1.1
├─ function.prototype.name@1.1.0
├─ functional-red-black-tree@1.0.1
├─ gauge@2.7.4
├─ get-caller-file@1.0.2
├─ get-own-enumerable-property-symbols@2.0.1
├─ get-port@2.1.0
├─ get-stdin@5.0.1
├─ get-stream@3.0.0
├─ get-value@2.0.6
├─ getpass@0.1.7
├─ glob-base@0.3.0
├─ glob-parent@2.0.0
├─ glob@7.1.2
├─ global-dirs@0.1.1
├─ global@4.3.2
├─ globals@11.4.0
├─ globby@5.0.0
├─ glogg@1.0.1
├─ got@7.1.0
├─ graceful-fs@4.1.11
├─ growly@1.3.0
├─ gud@1.0.0
├─ gulp-util@3.0.8
├─ gulplog@1.0.0
├─ handlebars@4.0.11
├─ har-schema@1.0.5
├─ har-validator@4.2.1
├─ has-ansi@2.0.0
├─ has-binary@0.1.7
├─ has-binary2@1.0.2
├─ has-cors@1.1.0
├─ has-flag@3.0.0
├─ has-gulplog@0.1.0
├─ has-symbol-support-x@1.4.2
├─ has-symbols@1.0.0
├─ has-to-string-tag-x@1.4.1
├─ has-unicode@2.0.1
├─ has-value@1.0.0
├─ has-values@1.0.0
├─ has@1.0.1
├─ hawk@3.1.3
├─ highland@2.13.0
├─ hoek@4.2.1
├─ hoist-non-react-statics@2.5.0
├─ home-or-tmp@2.0.0
├─ hosted-git-info@2.6.0
├─ html-encoding-sniffer@1.0.2
├─ html5-websocket@2.0.2
├─ htmlparser2@3.9.2
├─ http-errors@1.6.3
├─ http-signature@1.1.1
├─ https-proxy-agent@2.2.1
├─ i18n-js@3.0.3
├─ iconv-lite@0.4.21
├─ idx@2.2.0
├─ ignore@3.3.7
├─ image-size@0.6.2
├─ import-lazy@2.1.0
├─ import-local@1.0.0
├─ imurmurhash@0.1.4
├─ indent-string@2.1.0
├─ indexof@0.0.1
├─ inflight@1.0.6
├─ inherits@2.0.3
├─ ini@1.3.5
├─ inquirer@3.3.0
├─ invariant@2.2.4
├─ invert-kv@1.0.0
├─ is-accessor-descriptor@1.0.0
├─ is-arrayish@0.2.1
├─ is-boolean-object@1.0.0
├─ is-buffer@1.1.6
├─ is-builtin-module@1.0.0
├─ is-callable@1.1.3
├─ is-ci@1.1.0
├─ is-data-descriptor@1.0.0
├─ is-date-object@1.0.1
├─ is-descriptor@1.0.2
├─ is-directory@0.3.1
├─ is-dotfile@1.0.3
├─ is-equal-shallow@0.1.3
├─ is-extendable@0.1.1
├─ is-extglob@1.0.0
├─ is-finite@1.0.2
├─ is-fullwidth-code-point@2.0.0
├─ is-generator-fn@1.0.0
├─ is-glob@2.0.1
├─ is-installed-globally@0.1.0
├─ is-npm@1.0.0
├─ is-number-object@1.0.3
├─ is-number@3.0.0
├─ is-obj@1.0.1
├─ is-object@1.0.1
├─ is-observable@0.2.0
├─ is-odd@2.0.0
├─ is-path-cwd@1.0.0
├─ is-path-in-cwd@1.0.1
├─ is-path-inside@1.0.1
├─ is-plain-obj@1.1.0
├─ is-plain-object@2.0.4
├─ is-posix-bracket@0.1.1
├─ is-primitive@2.0.0
├─ is-promise@2.1.0
├─ is-redirect@1.0.0
├─ is-regex@1.0.4
├─ is-regexp@1.0.0
├─ is-resolvable@1.1.0
├─ is-retry-allowed@1.1.0
├─ is-stream@1.1.0
├─ is-string@1.0.4
├─ is-subset@0.1.1
├─ is-symbol@1.0.1
├─ is-typedarray@1.0.0
├─ is-utf8@0.2.1
├─ is-windows@1.0.2
├─ isarray@0.0.1
├─ isexe@2.0.0
├─ isobject@3.0.1
├─ isomorphic-fetch@2.2.1
├─ isstream@0.1.2
├─ istanbul-api@1.3.1
├─ istanbul-lib-coverage@1.2.0
├─ istanbul-lib-hook@1.2.0
├─ istanbul-lib-instrument@1.10.1
├─ istanbul-lib-report@1.1.4
├─ istanbul-lib-source-maps@1.2.3
├─ istanbul-reports@1.3.0
├─ isurl@1.0.0
├─ jasmine-reporters@2.3.0
├─ jest-changed-files@22.4.3
├─ jest-cli@22.4.3
├─ jest-config@22.4.3
├─ jest-diff@22.4.3
├─ jest-docblock@22.4.0
├─ jest-environment-jsdom@22.4.3
├─ jest-environment-node@22.4.3
├─ jest-get-type@22.4.3
├─ jest-haste-map@22.4.3
├─ jest-jasmine2@22.4.3
├─ jest-leak-detector@22.4.3
├─ jest-matcher-utils@22.4.3
├─ jest-message-util@22.4.3
├─ jest-mock@22.4.3
├─ jest-plugin-it-renders@2.9.0
├─ jest-regex-util@22.4.3
├─ jest-resolve-dependencies@22.4.3
├─ jest-resolve@22.4.3
├─ jest-runner@22.4.3
├─ jest-runtime@22.4.3
├─ jest-serializer@22.4.3
├─ jest-snapshot@22.4.3
├─ jest-util@22.4.3
├─ jest-validate@22.4.3
├─ jest-worker@22.4.3
├─ jest@22.4.3
├─ js-tokens@3.0.2
├─ js-yaml@3.11.0
├─ jsbn@0.1.1
├─ jsdom@11.7.0
├─ jsesc@1.3.0
├─ json-parse-better-errors@1.0.2
├─ json-schema-traverse@0.3.1
├─ json-schema@0.2.3
├─ json-stable-stringify-without-jsonify@1.0.1
├─ json-stable-stringify@1.0.1
├─ json-stringify-safe@5.0.1
├─ json3@3.3.2
├─ json5@0.5.1
├─ jsonfile@2.4.0
├─ jsonify@0.0.0
├─ jsprim@1.4.1
├─ jsx-ast-utils@2.0.1
├─ kind-of@3.2.2
├─ klaw@1.3.1
├─ latest-version@3.1.0
├─ lazy-cache@1.0.4
├─ lcid@1.0.0
├─ left-pad@1.3.0
├─ leven@2.1.0
├─ levn@0.3.0
├─ lint-staged@7.0.4
├─ listr-silent-renderer@1.1.1
├─ listr-update-renderer@0.4.0
├─ listr-verbose-renderer@0.4.1
├─ listr@0.13.0
├─ load-json-file@2.0.0
├─ loader-fs-cache@1.0.1
├─ loader-utils@1.1.0
├─ locate-path@2.0.0
├─ lodash-es@4.17.8
├─ lodash._basecopy@3.0.1
├─ lodash._basetostring@3.0.1
├─ lodash._basevalues@3.0.0
├─ lodash._getnative@3.9.1
├─ lodash._isiterateecall@3.0.9
├─ lodash._reescape@3.0.0
├─ lodash._reevaluate@3.0.0
├─ lodash._reinterpolate@3.0.0
├─ lodash._root@3.0.1
├─ lodash.escape@3.2.0
├─ lodash.flattendeep@4.4.0
├─ lodash.isarguments@3.1.0
├─ lodash.isarray@3.0.4
├─ lodash.isplainobject@4.0.6
├─ lodash.keys@3.1.2
├─ lodash.pad@4.5.1
├─ lodash.padend@4.6.1
├─ lodash.padstart@4.6.1
├─ lodash.restparam@3.6.1
├─ lodash.sortby@4.7.0
├─ lodash.template@3.6.2
├─ lodash.templatesettings@3.1.1
├─ lodash.throttle@4.1.1
├─ lodash.zipobject@4.1.3
├─ lodash@4.17.5
├─ log-symbols@1.0.2
├─ log-update@1.0.2
├─ longest@1.0.1
├─ loose-envify@1.3.1
├─ lowercase-keys@1.0.1
├─ lru-cache@4.1.2
├─ macos-release@1.1.0
├─ make-dir@1.2.0
├─ makeerror@1.0.11
├─ map-cache@0.2.2
├─ map-visit@1.0.0
├─ mem@1.1.0
├─ merge-stream@1.0.1
├─ merge@1.2.0
├─ metro-babylon7@0.30.2
├─ metro-cache@0.30.2
├─ metro-core@0.30.2
├─ metro-minify-uglify@0.30.2
├─ metro-resolver@0.30.2
├─ metro-source-map@0.30.2
├─ metro@0.30.2
├─ micromatch@2.3.11
├─ mime-db@1.33.0
├─ mime-types@2.1.18
├─ mime@1.6.0
├─ mimic-fn@1.2.0
├─ mimic-response@1.0.0
├─ min-document@2.19.0
├─ minimatch@3.0.4
├─ minimist@1.2.0
├─ mitt@1.1.3
├─ mixin-deep@1.3.1
├─ mkdirp@0.5.1
├─ morgan@1.9.0
├─ ms@2.0.0
├─ multipipe@0.1.2
├─ mute-stream@0.0.7
├─ nan@2.10.0
├─ nanomatch@1.2.9
├─ natural-compare@1.4.0
├─ nearley@2.13.0
├─ negotiator@0.6.1
├─ node-fetch@1.7.3
├─ node-int64@0.4.0
├─ node-modules-regexp@1.0.0
├─ node-notifier@5.2.1
├─ node-pre-gyp@0.6.39
├─ node-version@1.1.3
├─ nomnom@1.6.2
├─ nopt@4.0.1
├─ normalize-package-data@2.4.0
├─ normalize-path@2.1.1
├─ npm-path@2.0.4
├─ npm-run-path@2.0.2
├─ npm-which@3.0.1
├─ npmlog@4.1.2
├─ nth-check@1.0.1
├─ number-is-nan@1.0.1
├─ nwmatcher@1.4.4
├─ oauth-sign@0.8.2
├─ object-assign@4.1.1
├─ object-component@0.0.3
├─ object-copy@0.1.0
├─ object-hash@1.3.0
├─ object-inspect@1.5.0
├─ object-is@1.0.1
├─ object-keys@1.0.11
├─ object-visit@1.0.1
├─ object.assign@4.1.0
├─ object.entries@1.0.4
├─ object.getownpropertydescriptors@2.0.3
├─ object.omit@2.0.1
├─ object.pick@1.3.0
├─ object.values@1.0.4
├─ on-finished@2.3.0
├─ on-headers@1.0.1
├─ once@1.4.0
├─ onetime@1.1.0
├─ open@0.0.5
├─ opencollective@1.0.3
├─ opn@3.0.3
├─ optimist@0.6.1
├─ optionator@0.8.2
├─ options@0.0.6
├─ ora@0.2.3
├─ os-homedir@1.0.2
├─ os-locale@2.1.0
├─ os-name@2.0.1
├─ os-shim@0.1.3
├─ os-tmpdir@1.0.2
├─ osenv@0.1.5
├─ p-cancelable@0.3.0
├─ p-finally@1.0.0
├─ p-limit@1.2.0
├─ p-locate@2.0.0
├─ p-map@1.2.0
├─ p-timeout@1.2.1
├─ p-try@1.0.0
├─ package-json@4.0.1
├─ parse-glob@3.0.4
├─ parse-json@2.2.0
├─ parse5@3.0.3
├─ parsejson@0.0.3
├─ parseqs@0.0.5
├─ parseuri@0.0.5
├─ parseurl@1.3.2
├─ pascalcase@0.1.1
├─ patch-package@5.1.1
├─ path-exists@2.1.0
├─ path-is-absolute@1.0.1
├─ path-is-inside@1.0.2
├─ path-key@2.0.1
├─ path-parse@1.0.5
├─ path-to-regexp@1.7.0
├─ path-type@2.0.0
├─ path@0.12.7
├─ pegjs@0.10.0
├─ performance-now@2.1.0
├─ pify@2.3.0
├─ pinkie-promise@2.0.1
├─ pinkie@2.0.4
├─ pirates@3.0.2
├─ pkg-dir@1.0.0
├─ please-upgrade-node@3.0.1
├─ plist@2.1.0
├─ pluralize@7.0.0
├─ pn@1.1.0
├─ posix-character-classes@0.1.1
├─ postinstall-build@5.0.1
├─ postinstall-postinstall@1.0.0
├─ pre-commit@1.2.2
├─ prelude-ls@1.1.2
├─ prepend-http@1.0.4
├─ preserve@0.2.0
├─ prettier@1.11.1
├─ pretty-format@22.4.3
├─ private@0.1.8
├─ process-nextick-args@2.0.0
├─ process@0.11.10
├─ progress@2.0.0
├─ promise-polyfill@6.1.0
├─ promise@7.3.1
├─ prop-types@15.6.1
├─ proxy-from-env@1.0.0
├─ pseudomap@1.0.2
├─ pump@1.0.3
├─ punycode@1.4.1
├─ qs@6.4.0
├─ r2@2.0.1
├─ raf@3.4.0
├─ railroad-diagrams@1.0.0
├─ ramda@0.24.1
├─ ramdasauce@2.1.0
├─ randexp@0.4.6
├─ randomatic@1.1.7
├─ range-parser@1.2.0
├─ raven-js@3.24.2
├─ rc@1.2.6
├─ react-clone-referenced-element@1.0.1
├─ react-deep-force-update@1.1.1
├─ react-devtools-core@3.1.0
├─ react-dom@16.3.1
├─ react-is@16.3.1
├─ react-lifecycles-compat@1.1.4
├─ react-native-camera@1.0.3
├─ react-native-config@0.11.5
├─ react-native-device-info@0.21.5
├─ react-native-dismiss-keyboard@1.0.0
├─ react-native-drawer-layout-polyfill@1.3.2
├─ react-native-drawer-layout@1.3.2
├─ react-native-exception-handler@2.7.5
├─ react-native-fbsdk@0.7.0
├─ react-native-firebase@4.0.3
├─ react-native-gesture-handler@1.0.0-alpha.42
├─ react-native-google-analytics-bridge@5.6.3
├─ react-native-google-signin@0.11.0
├─ react-native-i18n@2.0.12
├─ react-native-paper@1.2.6
├─ react-native-restart@0.0.6
├─ react-native-safe-area-view@0.7.0
├─ react-native-schemes-manager@1.0.4
├─ react-native-sentry@0.35.3
├─ react-native-svg@6.3.1
├─ react-native-tab-view@0.0.74
├─ react-native-twitter-signin@1.0.2
├─ react-native-vector-icons@4.6.0
├─ react-native@0.55.2
├─ react-navigation-deprecated-tab-navigator@1.0.1
├─ react-navigation-redux-helpers@1.0.5
├─ react-navigation-tabs@0.1.0-alpha.6
├─ react-navigation@2.0.0-rc.2
├─ react-proxy@1.1.8
├─ react-reconciler@0.7.0
├─ react-redux@5.0.7
├─ react-test-renderer@16.3.1
├─ react-timer-mixin@0.13.3
├─ react-transform-hmr@1.0.4
├─ react@16.3.1
├─ reactotron-core-client@1.13.0
├─ reactotron-react-native@1.14.0
├─ reactotron-redux@1.13.0
├─ read-env@1.1.1
├─ read-pkg-up@2.0.0
├─ read-pkg@2.0.0
├─ readable-stream@2.3.6
├─ realpath-native@1.0.0
├─ reconnecting-websocket@3.2.2
├─ redux-mock-store@1.5.1
├─ redux@3.7.2
├─ regenerate@1.3.3
├─ regenerator-runtime@0.11.1
├─ regenerator-transform@0.10.1
├─ regex-cache@0.4.4
├─ regex-not@1.0.2
├─ regexpp@1.1.0
├─ regexpu-core@2.0.0
├─ registry-auth-token@3.3.2
├─ registry-url@3.1.0
├─ regjsgen@0.2.0
├─ regjsparser@0.1.5
├─ remove-trailing-separator@1.1.0
├─ repeat-element@1.1.2
├─ repeat-string@1.6.1
├─ repeating@2.0.1
├─ replace-ext@0.0.1
├─ request-promise-core@1.1.1
├─ request-promise-native@1.0.5
├─ request@2.81.0
├─ require-directory@2.1.1
├─ require-from-string@2.0.2
├─ require-main-filename@1.0.1
├─ require-uncached@1.0.3
├─ reselect@3.0.1
├─ resolve-cwd@2.0.0
├─ resolve-from@1.0.1
├─ resolve-url@0.2.1
├─ resolve@1.7.0
├─ restore-cursor@1.0.1
├─ ret@0.1.15
├─ reusify@1.0.4
├─ right-align@0.1.3
├─ rimraf@2.6.2
├─ rn-host-detect@1.1.3
├─ rn-test-exception-handler@1.0.0
├─ rst-selector-parser@2.2.3
├─ run-async@2.3.0
├─ rx-lite-aggregates@4.0.8
├─ rx-lite@4.0.8
├─ rx@4.1.0
├─ rxjs@5.5.9
├─ safe-buffer@5.1.1
├─ safe-regex@1.1.0
├─ safer-buffer@2.1.2
├─ sane@2.5.0
├─ sax@1.1.6
├─ semver-diff@2.1.0
├─ semver@5.5.0
├─ send@0.16.2
├─ serialize-error@2.1.0
├─ serve-static@1.13.2
├─ set-blocking@2.0.0
├─ set-value@2.0.0
├─ setimmediate@1.0.5
├─ setprototypeof@1.1.0
├─ shebang-command@1.2.0
├─ shebang-regex@1.0.0
├─ shell-quote@1.6.1
├─ shell-utils@1.0.9
├─ shellwords@0.1.1
├─ signal-exit@3.0.2
├─ simple-plist@0.2.1
├─ simple-swizzle@0.2.2
├─ slash@1.0.0
├─ slice-ansi@1.0.0
├─ slide@1.1.6
├─ snapdragon-node@2.1.1
├─ snapdragon-util@3.0.1
├─ snapdragon@0.8.2
├─ sntp@1.0.9
├─ socket.io-client@2.1.0
├─ socket.io-parser@3.2.0
├─ source-map-resolve@0.5.1
├─ source-map-support@0.4.18
├─ source-map-url@0.4.0
├─ source-map@0.5.7
├─ sparkles@1.0.0
├─ spawn-sync@1.0.15
├─ spdx-correct@3.0.0
├─ spdx-exceptions@2.1.0
├─ spdx-expression-parse@3.0.0
├─ spdx-license-ids@3.0.0
├─ split-string@3.1.0
├─ sprintf-js@1.0.3
├─ sshpk@1.14.1
├─ stack-utils@1.0.1
├─ stacktrace-parser@0.1.4
├─ staged-git-files@1.1.1
├─ static-extend@0.1.2
├─ statuses@1.3.1
├─ stealthy-require@1.1.1
├─ stream-buffers@2.2.0
├─ stream-to-observable@0.2.0
├─ string_decoder@1.1.1
├─ string-argv@0.0.2
├─ string-length@2.0.0
├─ string-width@2.1.1
├─ stringify-object@3.2.2
├─ stringstream@0.0.5
├─ strip-ansi@3.0.1
├─ strip-bom@2.0.0
├─ strip-eof@1.0.0
├─ strip-json-comments@2.0.1
├─ supports-color@5.3.0
├─ symbol-observable@1.0.1
├─ symbol-tree@3.2.2
├─ table@4.0.2
├─ tail@1.2.3
├─ tap-merge@0.3.1
├─ tar-pack@3.4.1
├─ tar@2.2.1
├─ telnet-client@0.15.3
├─ temp@0.8.3
├─ term-size@1.2.0
├─ test-exclude@4.2.1
├─ text-table@0.2.0
├─ throat@4.1.0
├─ through@2.3.8
├─ through2@2.0.3
├─ time-stamp@1.1.0
├─ timed-out@4.0.1
├─ tmp@0.0.31
├─ tmpl@1.0.4
├─ to-array@0.1.4
├─ to-fast-properties@1.0.3
├─ to-object-path@0.3.0
├─ to-regex-range@2.1.1
├─ to-regex@3.0.2
├─ tough-cookie@2.3.4
├─ tr46@1.0.1
├─ trim-right@1.0.1
├─ tunnel-agent@0.6.0
├─ tweetnacl@0.14.5
├─ type-check@0.3.2
├─ typedarray-to-buffer@3.1.5
├─ typedarray@0.0.6
├─ ua-parser-js@0.7.17
├─ uglify-es@3.3.9
├─ uglify-js@2.8.29
├─ uglify-to-browserify@1.0.2
├─ uid-number@0.0.6
├─ ultron@1.1.1
├─ underscore@1.4.4
├─ union-value@1.0.0
├─ unique-string@1.0.0
├─ universalify@0.1.1
├─ unpipe@1.0.0
├─ unset-value@1.0.0
├─ unzip-response@2.0.1
├─ update-notifier@2.5.0
├─ urix@0.1.0
├─ url-parse-lax@1.0.0
├─ url-to-options@1.0.1
├─ use@3.1.0
├─ util-deprecate@1.0.2
├─ util.promisify@1.0.0
├─ util@0.10.3
├─ utils-merge@1.0.1
├─ uuid@3.0.1
├─ validate-npm-package-license@3.0.3
├─ vary@1.1.2
├─ verror@1.10.0
├─ vinyl@0.5.3
├─ w3c-hr-time@1.0.1
├─ walker@1.0.7
├─ watch@0.18.0
├─ webidl-conversions@4.0.2
├─ whatwg-encoding@1.0.3
├─ whatwg-fetch@1.1.1
├─ whatwg-mimetype@2.1.0
├─ whatwg-url@6.4.0
├─ which-module@2.0.0
├─ which@1.3.0
├─ wide-align@1.1.2
├─ widest-line@2.0.0
├─ win-release@1.1.1
├─ window-size@0.1.0
├─ wordwrap@1.0.0
├─ wrap-ansi@2.1.0
├─ wrappy@1.0.2
├─ write-file-atomic@2.3.0
├─ write@0.2.1
├─ ws@1.1.5
├─ wtf-8@1.0.0
├─ xcode@0.9.3
├─ xdg-basedir@3.0.0
├─ xml-name-validator@3.0.0
├─ xmlbuilder@8.2.2
├─ xmldoc@0.4.0
├─ xmldom@0.1.27
├─ xmlhttprequest-ssl@1.5.5
├─ xpipe@1.0.5
├─ xtend@4.0.1
├─ y18n@3.2.1
├─ yallist@2.1.2
├─ yargs-parser@7.0.0
├─ yargs@10.1.2
└─ yeast@0.1.2

Config:

Sentry.config('https://...@sentry.io/...', {
....
}).install()

I have following issue:

We want to show some custom alert let user report or restart app before crash, whenever there is a uncaught exceptions in js

So we set global handler like setJSExceptionHandler before Sentry install to replace defaultHandler on raven-plugin.js.

setJSExceptionHandler = (customHandler = this.noop, allowedInDevMode = false) => {
  const allowed = allowedInDevMode ? true : !__DEV__;
  if (allowed) {
    global.ErrorUtils.setGlobalHandler(customHandler);
  } else {
    console.log('Skipping setJSExceptionHandler: Reason: In DEV mode and allowedInDevMode = false');
  }
};
const customHandler = (
  e: { name: string, message: string },
  isFatal: boolean
) => {
  if (isFatal) {
    Alert.alert('Unexpected error occurred', [
      {
        text: 'Report to our team',
        onPress: () => {
          reportCrash(e);
        },
      },
      {
        text: 'Restart App',
        onPress: restartApp,
      },
    ]);
  } else {
    console.log(e); // So that we can see it in the ADB logs in case of Android if needed
  }
};

When we click button to trigger Sentry.crash() alert will show at first time, but second time seem to ignore exception after restart app on android.

Do we use the wrong way to show custom exception handler or have any suggestion for that?

Steps to reproduce:

Actual result:

Expected result:

HazAT commented 5 years ago

I am closing all old issues, please if this is still a problem feel free to revive it. Also, consider moving to our new SDK @sentry/react-native if it still happens there please open a new issue.