js规范-错误处理

70 阅读1分钟

错误处理

错误处理

  • 不要忽略抛异常

    bad : ❌
    
    try {
      functionThatMightThrow();
    } catch (error) {
      console.log(error);
    }
    good ✅
    
    try {
      functionThatMightThrow();
    } catch (error) {
      // 这一种选择,比起 console.log 更直观
      console.error(error);
      // 也可以在界面上提醒用户
      notifyUserOfError(error);
      // 也可以把异常传回服务器
      reportErrorToService(error);
      // 其他的自定义方法
    }
    
  • 不要忘了在 Promise 抛异常

    bad : ❌
    
    getdata()
      .then((data) => {
        functionThatMightThrow(data);
      })
      .catch((error) => {
        console.log(error);
      });
    
    good ✅
    
    getdata()
      .then((data) => {
        functionThatMightThrow(data);
      })
      .catch((error) => {
        // 这一种选择,比起 console.log 更直观
        console.error(error);
        // 也可以在界面上提醒用户
        notifyUserOfError(error);
        // 也可以把异常传回服务器
        reportErrorToService(error);
        // 其他的自定义方法
      });
    
  • 全局错误捕获

    window.onerror = function(message, source, lineno, colno, error) { ... }
    函数参数:

    • message:错误信息(字符串)。可用于 HTML onerror="" 处理程序中的 event
    • source:发生错误的脚本 URL(字符串)
    • lineno:发生错误的行号(数字)
    • colno:发生错误的列号(数字)
    • errorError 对象(对象)

    若该函数返回 true,则阻止执行默认事件处理函数

  • JS 常见错误
    建议先过一遍,参考 developer.mozilla.org/zh-CN/docs/…

**