web前端的错误处理

457 阅读3分钟

这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

前言

作为程序员(程序猿)遇见问题是很常见的,常常因为一个bug我们会被折磨好久,简直苦不堪言。我也总结了一些作为前端工作者碰到问题时如何解决问题的方法和思路,其实我最主要的还是提供思路,因为问题是处理不完的,只有掌握了思路,才能在五花八门的问题中找到出路,从而解决问题。授之以鱼不如授之以渔,今天我斗胆来当一当渔夫。

1.错误处理策略

过去, Web 应用程序的错误处理策略基本上是在服务器上落地。错误处理策略涉及很多错误和错误处理考量,包括日志记录和监控系统。这些主要是为了分析模式,以期找到问题的根源并了解有多少用户会受错误影响。 在 Web 应用程序的 JavaScipt 层面落地错误处理策略同样重要。因为任何 JavaScript 错误都可能导致网页无法使用,所以理解这些错误会在什么情况下发生以及为什么会发生非常重要。绝大多数 Web 应用程序的用户不懂技术,在碰到页面出问题时通常会迷惑。为解决问题,他们可能会尝试刷新页面,也可能会直接放弃。作为开发者,应该非常清楚自己的代码在什么情况下会失败,以及失败会导致什么结果。另外,还要有一个系统跟踪这些问题。

2.识别错误

错误处理非常重要的部分是首先识别错误可能会在代码中的什么地方发生。因为 JavaScript 是松散类型的,不会验证函数参数,所以很多错误只有在代码真正运行起来时才会出现。通常,需要注意3类错误:

  • 类型转换错误
  • 数据类型错误
  • 通信错误

3.try / catch 语句

 ECMA —262第3版新增了 trylcatch 语句,作为在 JavaScript 中处理异常的一种方式。基本的语法 如下所示,跟 Java 中的 trylcatch 语句一样: 

 {
 //可能出错的代码不清楚
 catch ( error ){
//出错时要做什么单照要清除"
//任何可能出错的代码都应该放到 try 块中,而处理错误的代码则放在 catch 块中,如下所示:
try {
 window . someNonexistentFunction ( O ;) catch ( error ){
 console . log (" An error happened !");

如果 try 块中有代码发生错误,代码会立即退出执行,并跳到 catch 块中。 catch 块此时接收到一个对象,该对象包含发生错误的相关信息。与其他语言不同,即使在 catch 块中不使用错误对象,也必须为它定义名称。错误对象中暴露的实际信息因浏览器而异,但至少包含保存错误消息的 message 属性。 ECMA —262也指定了定义错误类型的 name 属性,目前所有浏览器中都有这个属性。

总结

我认为做到处理bug还是有许多方法,像断点,打印,break等都可以,最重要的还是要做到活学活用,“因地制宜”地处理问题,多加思考,还有就是坚持,也可以出去散散心,可能回来就想通了呢。总之,加油!哈哈!