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语句允许我们创建自定义错误

最新文章

  1. PSP&amp;进度条
  2. 远程连接oracle服务器
  3. #ASP.NET Core 1.0 Key Features
  4. Unity-Animator深入系列总索引
  5. Android自定义View
  6. AngularJS Providers 详解
  7. 当在ECLIPSE中import现存项目时,如遇到版本不符
  8. loadView、viewDidLoad及viewDidUnload的关系
  9. C#运算除法和求整
  10. JavaScript的function对象
  11. ie textarea不支持maxlength textarea限制长度
  12. last reboot
  13. 【IE】trim()方法失效
  14. EditText的一点深入的了解
  15. MVC - 单点登录中间件
  16. 015 OS模块
  17. Vue:$set和$delete
  18. Vijos 1360 - 八数码问题 - [A*]
  19. SpringBoot使用HttpClient远程调用
  20. CodeForces - 812B Sagheer, the Hausmeister 搜索 dp

热门文章

  1. flannel 关闭SNAT
  2. SQLServer中使用between查询日期
  3. dism修改easyu中10PEx64.wim文件
  4. Hadoop环境的搭建
  5. Windows 批量测试 ip:port 是否通畅
  6. ApiPost前后端人员可以使用的接口测试工具还带生成文档
  7. D - Pair of Topics
  8. VUE3 API之watch与watchEffect
  9. java中indexOf()获取指定次数的下标
  10. Day25:报告编写等