关于react内的异常处理,欢迎讨论

#1

讨论点问题:react 异常捕获,如果在v16,仅仅使用componentDidCatch是没办法做到最大细粒度的异常捕获的,如异步,事件,构造函数中都无法使用它捕获,部分生命周期内的异常,捕获到错误,也没办法定位具体问题,会提示cross-origin error

所以目前来看要么ts类装饰器,要么通过babel在转换的时候全局函数加入try catch, 或者写一个base组件,重写全部render等方法,遍历原型方法加入try catch,大家都怎么处理的?


自认为应该是componentDidCatch + try/catch的双重异常保护处理才行,一方面在render期间错误时,不会造成白屏,可以优雅降级显示一些错误组件,而对于异步,action等函数,我们可以加入try/catch进行上报处理,但目前没找到太好的内容,希望得到帮助

#2

结合babel-plugin-react-transform封装了个方法,已经投入自己的项目使用,希望对你有帮助。具体github地址:https://github.com/dmaria58/react-catch-errors