JavaScript 错误 - throw、try 和 catch -HTML教程 -css5.net


JavaScript 错误 - throw、try 和 catch


try 语句能够测试出代码块的错误信息。

catch 是错误处理语句。

throw 语句可以创建自定义错误。

finally 语句在 try 和 catch 语句之后。


一、JavaScript 错误

执行 JavaScript 代码时,会发生各种错误。

一般错误有:编码错误、错别字、浏览器差异、服务器等错误。


二、JavaScript 抛出错误

当错误发生时,JavaScript 通常会停止并产生一条错误消息。

抛出一个错误 JavaScript 是技术术语。


三、JavaScript try 和 catch

try 语句容许您定义一个代码块,以在进行时检验错误。

catch 语句容许你定义一个要进行的代码块,要是 try 代码块中产生错误。

JavaScript 语句 try 和 catch 成对发现。

四、语法

try {

   ...    //抛出异常

} catch(e) {

   ...    //捕获与处理

} finally {

   ...    //结束的处理

}

五、示例代码

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

示例代码

var txt="";

function message()

{

   try {

       adddlert("Welcome guest!");

   } catch(err) {

       txt="当前页面有一个错误。\n\n";

       txt+="错误描述信息:" + err.message + "\n\n";

       txt+="点击确定。\n\n";

       alert(txt);

   }

}


演示一下

六、finally 语句

finally 语句容许以前的 try 和 catch 中是否发生执行的代码块。

示例代码

function myFunction() {

 var message, x;

 message = document.getElementById("p01");

 message.innerHTML = "";

 x = document.getElementById("demo").value;

 try {

   if(x == "") throw "这里值是空的";

   if(isNaN(x)) throw "这里的值不是一个数字";

   x = Number(x);

   if(x > 10) throw "太大了";

   if(x < 5) throw "太小了";

 }

 catch(err) {

   message.innerHTML = "错误信息: " + err + ".";

 }

 finally {

   document.getElementById("demo").value = "";

 }

}


演示一下


七、Throw 语句

throw 语句创建自定义错误。

技术术语是:JavaScript 将抛出异常。

JavaScript 可以创建带有两个属性的 Error 对象:name 和 message。

八、语法

throw exception

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

九、示例代码

本例 catch 会捕获到一个错误:

示例代码

function myFunction() {

   var message, x;

   message = document.getElementById("message");

   message.innerHTML = "";

   x = document.getElementById("demo").value;

   try {

       if(x == "")  throw "这里的值为空";

       if(isNaN(x)) throw "这里的不是数字";

       x = Number(x);

       if(x < 5)    throw "太小了";

       if(x > 10)   throw "太大了";

   }

   catch(err) {

       message.innerHTML = "错误信息: " + err;

   }

}


演示一下

请提示注意,如 getElementById 函数出错,上面示例代码也会抛出一个错误信息。


相关参考文章

Copyright © 2017 CSS5.NET教程.CSS5 内容仅用于学习和测试参考。 css5.net All Rights Reserved