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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2022-09-20 vue如何获取dom元素子节点