【转】js 好的程序设计,应该什么时候使用 try catch 呢?

时间:2022-05-02 23:58:00

比如在检测浏览器是否支持某些功能的时候

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