zoukankan      html  css  js  c++  java
  • try…catch 结构

    try…catch 结构

    一旦发生错误,程序就中止执行了。JavaScript 提供了try...catch结构,允许对错误进行处理,选择是否往下执行。

    try {
      throw new Error('出错了!');
    } catch (e) {
      console.log(e.name + ": " + e.message);
      console.log(e.stack);
    }
    // Error: 出错了!
    //   at <anonymous>:3:9
    //   ...
    

    上面代码中,try代码块抛出错误(上例用的是throw语句),JavaScript 引擎就立即把代码的执行,转到catch代码块,或者说错误被catch代码块捕获了。catch接受一个参数,表示try代码块抛出的值。

    如果你不确定某些代码是否会报错,就可以把它们放在try...catch代码块之中,便于进一步对错误进行处理。

    try {
      f();
    } catch(e) {
      // 处理错误
    }
    

    上面代码中,如果函数f执行报错,就会进行catch代码块,接着对错误进行处理。

    catch代码块捕获错误之后,程序不会中断,会按照正常流程继续执行下去。

    try {
      throw "出错了";
    } catch (e) {
      console.log(111);
    }
    console.log(222);
    // 111
    // 222
    

    上面代码中,try代码块抛出的错误,被catch代码块捕获后,程序会继续向下执行。

    catch代码块之中,还可以再抛出错误,甚至使用嵌套的try...catch结构。

    var n = 100;
    
    try {
      throw n;
    } catch (e) {
      if (e <= 50) {
        // ...
      } else {
        throw e;
      }
    }
    // Uncaught 100
    

    上面代码中,catch代码之中又抛出了一个错误。

    为了捕捉不同类型的错误,catch代码块之中可以加入判断语句。

    try {
      foo.bar();
    } catch (e) {
      if (e instanceof EvalError) {
        console.log(e.name + ": " + e.message);
      } else if (e instanceof RangeError) {
        console.log(e.name + ": " + e.message);
      }
      // ...
    }
    

    上面代码中,catch捕获错误之后,会判断错误类型(EvalError还是RangeError),进行不同的处理。

  • 相关阅读:
    MySQL简单实现多字段模糊查询【转】
    PHP检测URL格式是否正确域名地址是否有效【转】
    php如何判断IP为有效IP地址【转】
    PHP isset() 函数使用【转】
    php生成唯一随机码【转】
    php判断一个值是否在数组中【转】
    Win10系统gpedit.msc文件找不到,如何解决【转】
    B
    【金色】种瓜得瓜,种豆得豆 Gym
    J
  • 原文地址:https://www.cnblogs.com/chenhuichao/p/8483815.html
Copyright © 2011-2022 走看看