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),进行不同的处理。

  • 相关阅读:
    ABP 数据库 -- ABP&EF中的多表、关联查询
    C# List集合基础操作
    C# ABP 允许跨域请求
    异或运算、与运算、或运算 运用在 多项选择题
    C# ABP 配置连接数据库&创建表
    C# ABP WebApi与Swagger UI的集成
    C# 深入了解泛型
    8、SpringBoot+Mybatis整合------参数取值方式
    7、SpringBoot+Mybatis整合------PageHelper简单分页
    6、SpringBoot+Mybatis整合------参数传递
  • 原文地址:https://www.cnblogs.com/chenhuichao/p/8483815.html
Copyright © 2011-2022 走看看