try catch finally;错误类型;error事件

书摘&心得

  • finally中的代码无论如何都会执行。
  • 错误类型
    • Error:基类,所有错误。
    • EvalError:如果没有把 eval()当成函数调用,就会抛出错误。
    • RangeError:在数值超出相应范围时触发
    • ReferenceError:找不到对象的情况
    • SyntaxErro:语法错误
      • 把语法错误的 JavaScript 字符串传入 eval()函数时
      • 不太可能使用 SyntaxError,因为此时的语法错误会导致 JavaScript 代码立即停止执行
    • TypeError:变量的类型并不符合要求
  • 抛错

    1. throw new SyntaxError("I don’t like your syntax.");
    2. throw new TypeError("What type of variable do you take me for?");
    3. throw new RangeError("Sorry, you just don’t have the range.");
    4. throw new EvalError("That doesn’t evaluate.");
    5. throw new URIError("Uri, is that you?");
    6. throw new ReferenceError("You didn’t cite your references properly.");
  • 只要发生错误,无论是不是浏览器生成的,都会触发 error 事件

    1. window.onerror = function(message, url, line){
    2. alert(message);
    3. return false;
    4. };
    • 图片也支持error事件