JavaScript错误throw、try、catch
try:语句测试代码的错误;
catch:语句处理错误;
throw:语句创建自定义错误;
finally:语句在try和catch语句之后,无论是否有触发异常,该语句都会执行。
JavaScript错误
当JavaScript引擎执行JavaScript代码时,会发生各种错误。
可能是语法错误,通常是程序员造成的编码错误和错别字。
可能是拼写错误或语言缺少的功能(浏览器差异)。
可能是服务器或用户错误输出导致的错误。
JavaScript抛出错误
当错误发生时,JavaScript引擎通常会停止,并生成一个错误信息。
描述这种情况的术语是JavaScript将抛出一个错误。
JavaScript try和catch
try语句允许我们定义在执行时进行错误测试的代码。
catch语句允许我们在try语句发生错误时,所执行的代码块。
JavaScript中的try和catch语句时成对存在的。
语法:
1 try{ 2 ... //抛出异常 3 }catch(e){ 4 ... //异常的捕获与处理 5 }finally{ 6 ... //结束处理 7 }
实例:
我们在try代码块中写错了一个字符,catch块会捕捉try代码块中的错误,并处理它。
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>JavaScript 错误 throw、try和catch</title> 6 </head> 7 <p> 8 try语句测试代码的错误<br> 9 catch语句处理错误<br> 10 </p> 11 <p> 12 语法: 13 try{ 14 ... //抛出异常 15 }catch(e){ 16 ... //异常的捕获与处理 17 }finally{ 18 ... //结束处理 19 } 20 21 </p> 22 <script> 23 var txt=""; 24 function message(){ 25 try{ 26 addlert("Welcome...") 27 } 28 catch(err){ 29 txt="本页有一个错误..."+"\n\n"; 30 txt+="错误描述"+err.message+"\n\n"; 31 txt+="点击确定继续"+"\n\n"; 32 alert(txt); 33 } 34 35 } 36 </script> 37 <body> 38 <input type="button" value="查看消息" onclick="message()"> 39 </body> 40 </html>
finally语句
finally语句不管之前try和catch语句是否异常都会执行
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>javascript finally 语句</title> 6 </head> 7 <body> 8 <p>不管输入是否正确,输入框都会在输入后清空。</p> 9 <p>请输入5~10之间的数字。</p> 10 <input type="text" id="demo"> 11 <button type="button" onclick="myFunction()">点我</button> 12 <p id="p01"></p> 13 <script> 14 function myFunction(){ 15 // 创建两个变量 16 var x, message 17 // message 从p01获取 18 message = document.getElementById("p01"); 19 message.innerHTML=""; 20 x = document.getElementById("demo").value; 21 try{ 22 if(x=="") throw "值是空的。。。" 23 if(isNaN(x)) throw "不是一个数字。" 24 if(x<5) throw "值太小。。。" 25 if(x>10) throw "值太大。。。" 26 } 27 catch(err){ 28 message.innerHTML="错误:"+err; 29 } 30 finally{ 31 document.getElementById("demo").value 32 } 33 } 34 </script> 35 </body> 36 </html>
throw语句
throw语句允许我们创建自定义错误
标签:语句,错误,JavaScript,try,catch,throw From: https://www.cnblogs.com/wenzm/p/17039632.html