比如在检测浏览器是否支持某些功能的时候
if (!xx) {
console.error('此浏览器不支持 xx 功能')
}
还是
try {
xx;
}
catch(e) {
throw new Error('此浏览器不支持 xx 功能');
}
上面这个列子可能并不恰当,只是抛出问题,希望大神可以全面的指点下。
回答1:
jquery 让 dom 操作不报错,结果现在很多前端以为 try catch 都用不着了。
https://github.com/inexorabletash/polyfill/blob/master/es5.js
这里有个例子,通过try catch 监测浏览器是否实现某个功能是个好习惯,如果不支持,有时候可以采用降级处理。
那些不处理的异常的,估计也就写写网页吧,一个严肃的应用出现js报错是非常影响用户体验的事情!
如果你无法降级处理,做法也不应该是直接抛出异常,好的体验应该是告诉用户你的应用部分功能不支持他现在的浏览器,提示他更换,抛错会让用户无所适从。
如果是你是开发组件给别人用,最好提前在说明中声明使用了哪些新特性
回答2:
使用try catch会导致性能问题(重新思考javascript中的try catch)
回答3:
try catch 必须用在你知道可能发生什么异常的的地方,而且作为直接跟用户打交道的语言,还是不要不友好的直接抛出异常。
回答4:
新一代模式:用户驱动的产品开发(UDD)。使用Fundebug线上24小时实时监控,有了bug第一时间修复,快速迭代就好啦。
原文:https://segmentfault.com/q/1010000003939351