今天在排查bug时遇到了这样一个问题:
在index.vue文件中使用了mixins:[mixinFns],而在mixinFns中定义了方法fn,当我在index.vue中调用fn方法时,代码执行直接中断了,而控制台没有抛出任何错误。后面打断点才发现是fn中的代码执行出错了。而后我又试了直接在fn中throw Error("xxx"),状况和上述情况一样,控制台中并不会有任何错误打印,这是为什么呢?
ps:代码中没有使用try...catch
今天在排查bug时遇到了这样一个问题:
在index.vue文件中使用了mixins:[mixinFns],而在mixinFns中定义了方法fn,当我在index.vue中调用fn方法时,代码执行直接中断了,而控制台没有抛出任何错误。后面打断点才发现是fn中的代码执行出错了。而后我又试了直接在fn中throw Error("xxx"),状况和上述情况一样,控制台中并不会有任何错误打印,这是为什么呢?
ps:代码中没有使用try...catch
建议结合源码去调试,看看从合并配置选项到执行方法的调用栈等信息综合分析,看看是否是源码内部帮你捕获了异常。
本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
1、检查下
console.error
有没有被重写,直接在控制台执行下就知道了2、检查下有没有全局捕获,比如
window.onerror
、Vue.config.errorHandler
3、以上都没有在错误处打断点,查看调用堆栈,看看是在哪里被吃掉了