1.JavaScript知识点之try()、catch()和throw()

1.JavaScript知识点之try()、catch()和throw()

   try 语句测试代码块的错误。
   catch 语句处理错误。
   throw 语句创建自定义错误。

JavaScript 测试和捕捉:
try 语句允许我们定义在执行时进行错误测试的代码块。
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
JavaScript 语句 try 和 catch 是成对出现的。

一、什么是例外处理

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

二、例外处理技术的优点

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

三、使用 try…catch…finally 执行例外处理

在JavaScript中,我们使用try…catch…finally语句来执行例外处理,即通过它来捕捉错误发生后导致的例外或者执行throw语句产生的例外。它的基本语法如下:
try {    // 此处是可能产生例外的语句    } catch(error) {    // 此处是负责例外处理的语句   } finally {    // 此处是出口语句    }
上述代码中,try块中的语句首先被执行。如果运行中发生了错误,控制就会转移到位于catch块中语句,其中括号中的error参数被作为例外变量传递。否则,catch块的语句被跳过不执行。无论是发生错误时catch块中的语句执行完毕,或者没有发生错误try块中的语句执行完毕,最后将执行finally块中的语句。

在下面的例子中,我们故意在 try 块的代码中写了一个错字。
catch 块会捕捉到 try 块中的错误,并执行代码来处理它。

<!DOCTYPE html>
<html>
   <head>
        <script>
               var txt="";
                function message() {
                    try
                         {
                            adddlert("Welcome guest!");
                           }
                          catch(err)
                             {
                                txt="There was an error on this page.\n\n";
                                 txt+="Error description: " + err.message + "\n\n";
                                 txt+="Click OK to continue.\n\n";
                                  alert(txt);
                                  }
                        }
               </script>
          </head>
       <body>
      <input type="button" value="View message" onclick="message()">
    </body>
</html>

Throw 语句
throw 语句允许我们创建自定义错误。
正确的技术术语是:创建或抛出异常(exception)。
如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。

语法
throw exception
异常可以是 JavaScript 字符串、数字、逻辑值或对象。

例子:

<script>
          function myFunction()  {
          try
          {
          var x=document.getElementById("demo").value;
          if(x=="")    throw "empty";
           if(isNaN(x)) throw "not a number";
           if(x>10)     throw "too high";
           if(x<5)      throw "too low";
            }
            catch(err)
                {
                    var y=document.getElementById("mess");
                      y.innerHTML="Error: " + err + ".";
                  }
            }
</script>
<p>Please input a number between 5 and 10:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="mess"></p>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,276评论 18 399
  • 程序开发中,编程人员经常要面对的是如何编写代码来响应错误事件的发生,即例外处理(exception handler...
    duJing阅读 5,037评论 0 0
  • 简介:JavaScript 是脚本语言,是一种轻量级的编程语言,是可插入 HTML 页面的编程代码, 插入 HTM...
    夜幕小草阅读 4,801评论 0 29
  • 简介 基本概念 Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。本章详细介绍...
    呼呼哥阅读 4,726评论 0 4
  • 本文参加#未完待续,就要表白#活动,本人承诺,文章内容为原创,且未在其他平台发表过。 再见了 我亲爱的老师 我把感...
    粉红kk阅读 1,171评论 0 0

友情链接更多精彩内容