zoukankan      html  css  js  c++  java
  • js try{}catch(e){}的理解

    程序开发中,编程人员经常要面对的是如何编写代码来响应错误事件的发生,即例外处理(exception handlers)。如果例外处理代码设计得周全,那么最终呈现给用户的就将是一个友好的界面。否则,就会让访问者对莫名的现象感到真正的“意外”。

    例外处理:当JavaScript程序在运行中发生了诸如数组索引越界、类型不匹配或者语法错误时,JavaScript解释器就会引发例外处理。ECMAScript定义了六种类型的错误,除此之外,我们可以使用Error对象和throw语句来创建并引发自定义的例外处理信息。

    例外处理技术的优点通过运用例外处理技术,我们可以实现用结构化的方式来响应错误事件的发生,让例外处理代码与正常脚本代码科学分离,最终使我们能够集中精力编写完成主要功能的核心程序。

    // 如下,如果我们这样写:
    
    console.log(i);
    
    var a = 6;
    
    console.log(++a);
    
    // 因为i未定义 出现错误 那么js就卡在这里了 我们预期的输出a的结果也不执行了。
    

      

    // 如果 我们使用try catch:
    try {
      console.log(i);
    }catch(e) {
      console.log(e)
    }
    
    var a = 5;
    console.log(++a);
    
    // 那么,i未定义的错误被捕获掉了,程序仍能继续运行下去,最后输出a
    // 使用 try...catch...finally 语句来执行

    try {
      // 此处是可能产生例外的语句
    } catch(error) {
      // 此处是负责例外处理的语句
    } finally {
      // 此处是出口语句(catch执行或不执行 finally都会执行)故try...catch比较常见
    }
    // 我们可以自定义抛出错误,比如我们想检验一个值:
    
    var user = 'SpongeBob';
    
    try {
      if(user != 'name') {
        throw new Error('用户名错误');
      }
    }catch(e) {
      console.log(e.message) // 在这里可以捕获到自定义的错误
    }

    // try报错 将执行catch语句 最后输出log

    例外表现形式:Error对象

    在JavaScript,例外是作为Error对象出现的。Error对象有两个属性:name属性表示例外的类型,message属性表示例外的含义。根据这些属性的取值。

    Error.name的取值一共有六种,如下:


      Error:()的使用与定义不一致
      RangeError:数值越界
      ReferenceError:非法或不能识别的引用数值
      SyntaxError:发生语法解析错误
      TypeError:操作数类型错误
      URIError:URI处理函数使用不当

  • 相关阅读:
    cafebabe go入门练习003:常量与iota
    go入门练习002:查找重复的行
    go入门练习001:打印命令行输入
    go入门-002-程序结构
    [ES6深度解析]10:Generators 续集
    [JavaScript初级面试]17. 运行环境
    [JavaScript初级面试]16. 运行环境
    [JavaScript初级面试]10. WEB API
    [JavaScript初级面试]8. WEB API
    [JavaScript初级面试]7. WEB API
  • 原文地址:https://www.cnblogs.com/QQPrincekin/p/10895417.html
Copyright © 2011-2022 走看看