try-catch中如果不允许console,catch里如何体现错误

代码中加了lint校验,不允许使用console,那么catch中如何捕获错误,并且有所体现。

阅读 2.5k
3 个回答

我认为这个题目不成立。

体现出来就是给人看的,要么给用户看,要么自己(程序员)看。如果是自己看没必要不用 console,只在不行你加行注释抑制掉错误就是了。

如果给用户看那随手弹个模态框就是了,我觉得也不需要来问。

另一种方法是把某些错误收集起来发来一个专用的借口(比如 fundebug),这样你可以在后台看到前端 catch 到的错误了。

这就得从为什么会有不让用 console 的这条 lint 规则说起。

原因就是有人认为 log 不应该随手打在浏览器控制台,应该合理规范起来,加上 时间戳,tag,等等,方便检索,所以呢,你最好把 console 包装起来用。包装的好处还有就是,你甚至可以很轻松换掉底层的实现,你可以把一个 div 当输出,甚至把 log 发到服务器,而根本不用浏览器本身的 console。而随手写 console.log 的话,将来你要改进,就只能 ctrl + F 全局搜索了。

lint 之所以是 lint 而不是直接的语言特性,是因为 lint 只是在规范 99% 的情况,剩下的 1% 如果不得不打破某些规则,那就打破。或者你觉得哪条规则很蠢,那你就定制你自己认为舒服的规则。

走专门的错误收集逻辑,实在要用console,可以加上eslint单行注释

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题