js try{}catch(e){}的理解

mac2022-06-30  86

程序开发中,编程人员经常要面对的是如何编写代码来响应错误事件的发生,即例外处理(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时不会触发)故try...catch比较常见  } // 我们可以自定义抛出错误,比如我们想检验一个值: var user = 'SpongeBob'; try { if(user != 'SpongeBob') { throw new Error('用户名错误'); } }catch(e) { console.log(e.message) // 在这里可以捕获到自定义的错误 }

 

例外表现形式:Error对象

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

 

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

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

转载于:https://www.cnblogs.com/QQPrincekin/p/10895417.html

最新回复(0)