美文网首页
1.JavaScript知识点之try()、catch()和th

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

作者: 落魂灬 | 来源:发表于2017-08-28 14:43 被阅读43次

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>

相关文章

网友评论

      本文标题:1.JavaScript知识点之try()、catch()和th

      本文链接:https://www.haomeiwen.com/subject/sycgdxtx.html