登录 |  注册
首页 >  编程语言 >  JavaScript入门教程笔记 >  异常ThrowTryCatch

异常ThrowTryCatch

try 语句测试代码块的错误。

catch 语句处理错误。

throw 语句创建自定义错误。


 JavaScript 错误

当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误:

可能是语法错误,一般是程序员造成的编码错误或错别字。

可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。

可能是由于来自服务器或用户的错误输出而导致的错误。

当然,也可能是由于许多其他不可预知的因素。


JavaScript 抛出(throw)错误

当错误发生时,当事情出问题时,JavaScript 引擎一般会停止,并生成一个错误消息。

描述这种情况的技术术语是:JavaScript 将抛出一个错误。


JavaScript try 和 catch

try 语句允许我们定义在执行时进行错误测试的代码块。

catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

JavaScript 语句 try catch 是成对出现的。

语法

try   
   {   
   //在这里运行代码   
   }   
 catch(err)   
   {   
   //在这里处理错误   
   }
在下面的例子中,我们故意在 try 块的代码中写了一个错字。

catch 块会捕捉到 try 块中的错误,并执行代码来处理它。

<!DOCTYPE html>   
<html>    
    <head>
    <script>
        var txt="";
        function message()    {
            try{
                adddlert("Welcome guest!");
            }catch(err){
                txt="本页有一个错误。\n\n";
                txt+="错误描述:" + err.message + "\n\n";
                txt+="点击确定继续。\n\n";
                alert(txt);
            }    
        }
    </script>
    </head>   
    <body>
    <input type="button" value="查看消息" onclick="message()">
    </body>   
</html>


Throw 语句

throw 语句允许我们创建自定义错误。

正确的技术术语是:创建或抛出异常(exception)

如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。

语法

throw 
   exception

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

本例检测输入变量的值。如果值是错误的,会抛出一个异常(错误)。catch 会捕捉到这个错误,并显示一段自定义的错误消息:

<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>   

<h1>My First JavaScript</h1>   
<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>

请注意,如果 getElementById 函数出错,上面的例子也会抛出一个错误。

上一篇: JavaScript正则表达式
下一篇: JavaScript调试
推荐文章
  • 在HTML中,如果你想让一个输入框(input元素)不可编辑,你可以通过设置其readonly属性来实现。示例如下:input type="text" value="此处内容不可编辑" readonly在上述代码中,readonly属性使得用户无法修改输入框中的内容。另外,如果你希望输入框完全不可交
  • ASP.NET教程ASP.NET又称为ASP+,基于.NETFramework的Web开发平台,是微软公司推出的新一代脚本语言。ASP.NET是一个使用HTML、CSS、JavaScript和服务器脚本创建网页和网站的开发框架。ASP.NET支持三种不一样的开发模式:WebPages(Web页面)、
  • C# 判断判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。下面是大多数编程语言中典型的判断结构的通常形式:判断语句C#提供了以下类型的判断语句。点击链接查看每个语句的细节。语句描述if语句一个 if语句 由一个布尔表达式后跟
  • C#循环有的时候,可能需要多次执行同一块代码。通常情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。编程语言提供了允许更为复杂的执行路径的多种控制结构。循环语句允许我们多次执行一个语句或语句组,下面是大多数编程语言中循环语句的通常形式:循环类型C#提供了以下几种循环类型
  • C#数组(Array)数组是一个存储相同类型元素的固定大小的顺序集合。数组是用来存储数据的集合,一般认为数组是一个同一类型变量的集合。声明数组变量并不是声明number0、number1、...、number99一个个单独的变量,而是声明一个就像numbers这样的变量,然后使用numbers[0]
  • ASP.NET是一个由微软公司开发的用于构建Web应用程序的框架,它是.NETFramework的一部分。它提供了一种模型-视图-控制器(MVC)架构、Web表单以及最新的ASP.NETCore中的RazorPages等多种开发模式,可以用来创建动态网页和Web服务。以下是一些基础的ASP.NET编
学习大纲