js中 try catch的使用

try…catch 语句是什么?

try…catch 可以测试代码中的错误。try 部分包含需要运行的代码,而 catch 部分包含错误发生时运行的代码。

try…catch语法
1
2
3
4
5
6
7
8
9
10
try {
    //在此运行代码
}
catch(err){
    //在此处理错误
}
 
运行流程:
try{...}包含块中的代码有错误,则运行catch(err){...}内的代码,
否则不运行catch(err){...}内的代码。
try…catch案例
1
2
3
4
5
6
7
8
9
10
11
message(){
    var txt="";
    try {
        adddlert("Welcome guest!");
    } catch(err) {
        txt="本页有一个错误。\n\n";
        txt+="错误描述:" + err.message + "\n\n";
        txt+="点击确定继续。\n\n";
        alert(txt);
    }
}
try…catch…finally 语法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
try 
   tryStatements
catch(exception){ 
   catchStatements
finally  { 
   finallyStatements
}
 
参数  
   tryStatement    
   必选项。可能发生错误的语句。    
   exception    
   必选项。任何变量名。exception    的初始化值是扔出的错误的值。    
   catchStatement    
   可选项。处理在相关联的    tryStatement    中发生的错误的语句。    
   finallyStatements    
   可选项。在所有其他过程发生之后无条件执行的语句
try…catch…finally 案例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 = "";
  }
}
 
程序执行过程
1. catch(err)语句捕获到这个异常通过err.name打印了错误类型,err.message打印了错误的详细信息.
2. finally类似于java的finally,不论之前的 try catch 中是否产生异常都会执行该代码块.
Throw 语法

Throw 语句
(1). 允许我们创建自定义错误。
(2). 正确的技术术语是:创建或抛出异常(exception)。
(3). 如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
(4). throw exception 异常可以是 JavaScript 字符串、数字、逻辑值或对象。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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 函数出错,上面的例子也会抛出一个错误。

现总结Error.name的六种值对应的信息:
EvalError:eval()的使用与定义不一致
RangeError:数值越界
ReferenceError:非法或不能识别的引用数值
SyntaxError:发生语法解析错误
TypeError:操作数类型错误
URIError:URI处理函数使用不当
————————————————
版权声明:本文为CSDN博主「xuxb000」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiubinxu/article/details/122451721

 

posted @   黑白棋学弟  阅读(249)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
历史上的今天:
2022-09-20 vue如何获取dom元素子节点
点击右上角即可分享
微信分享提示